This commit is contained in:
Sunk 2023-03-01 20:17:07 -05:00
commit 8b85588793
164 changed files with 9317 additions and 6020 deletions

View file

@ -44,7 +44,7 @@ BETTERCAMERA ?= 1
# Enable no drawing distance by default
NODRAWINGDISTANCE ?= 1
# Disable texture fixes by default (helps with them purists)
TEXTURE_FIX ?= 1
TEXTURE_FIX ?= 0
# Enable extended options menu by default
EXT_OPTIONS_MENU ?= 1
# Disable text-based save-files by default
@ -57,6 +57,9 @@ DISCORDRPC ?= 0
DISCORD_SDK ?= 1
# Enable docker build workarounds
DOCKERBUILD ?= 0
# Sets your optimization level for building.
# A choose is chosen by default for you.
OPT_LEVEL ?= -1
# Enable compiling with more debug info.
DEBUG_INFO_LEVEL ?= 2
# Enable profiling
@ -199,16 +202,37 @@ else ifeq ($(VERSION),sh)
endif
# Determine our optimization level.
ifeq ($(DEBUG),0)
# Can't use O2 or higher right now for auto-builders, coop-compiler produces strange graphical errors
# likely due to undefined behavior somewhere
#ifeq ($(WINDOWS_AUTO_BUILDER),1)
# OPT_FLAGS := -O1
#else
OPT_FLAGS := -O2
#endif
else
# Optimization Levels 0 through 5 optimize for speed,
# While optimization levels 6, and 7 optimize for size.
# If no optimization is specified, A default is chosen.
ifeq ($(OPT_LEVEL),0) # No optimization
OPT_FLAGS := -O0
else ifeq ($(OPT_LEVEL),1) # Debugging optimization
OPT_FLAGS := -Og
else ifeq ($(OPT_LEVEL),2) # Level 1 Optimization
OPT_FLAGS := -O1
else ifeq ($(OPT_LEVEL),3) # Level 2 Optimization
OPT_FLAGS := -O2
else ifeq ($(OPT_LEVEL),4) # Level 3 Optimization
OPT_FLAGS := -O3
else ifeq ($(OPT_LEVEL),5) # Fastest Optimization
OPT_FLAGS := -Ofast
else ifeq ($(OPT_LEVEL),6) # Size Optimization
OPT_FLAGS := -Os
else ifeq ($(OPT_LEVEL),7) # Aggresive Size Optimization
OPT_FLAGS := -Oz
else
ifeq ($(DEBUG),0)
# Can't use O2 or higher right now for auto-builders, coop-compiler produces strange graphical errors
# likely due to undefined behavior somewhere
#ifeq ($(WINDOWS_AUTO_BUILDER),1)
# OPT_FLAGS := -O1
#else
OPT_FLAGS := -O2
#endif
else
OPT_FLAGS := -O0
endif
endif
# Set our level of debug symbol info,

View file

@ -16,7 +16,10 @@ Create a mod for the PC port where multiple people can play online together.
Unlike previous online attempts, this one synchronized enemies and events. This allows players to be interacting with the same world at the same time.
## Lua
sm64ex-coop is moddable via lua, similar to how Roblox and Gmod works. To get started, click [here](docs/lua/lua.md) to see the lua documentation
sm64ex-coop is moddable via lua, similar to how Roblox and Garry's Mod works. To get started, click [here](docs/lua/lua.md) to see the lua documentation
## Contribution
If you want to make a PR to sm64ex-coop, join the [Discord server](https://discord.gg/TJVKHS4) and communicate with us about your PR. We work on new sm64ex-coop betas on a private repo and push all of our changes to the main repo once we've added everything, so if you contact us we can give you access to that repo where you can PR your changes there.
## Discord
[https://discord.gg/TJVKHS4](https://discord.gg/TJVKHS4)

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -6,6 +6,14 @@ static const Lights1 bowser_key_lights = gdSPDefLights1(
0xff, 0xb2, 0x00, 0x28, 0x28, 0x28
);
ALIGNED8 const Texture bowser_key_left_texture[] = {
#include "actors/bowser_key/bowser_key_left.rgba16.inc.c"
};
ALIGNED8 const Texture bowser_key_right_texture[] = {
#include "actors/bowser_key/bowser_key_right.rgba16.inc.c"
};
// 0x030156F8
static const Vtx bowser_key_dl_vertex_group1[] = {
{{{ 219, 22, -17}, 0, { 0, 0}, {0x88, 0x26, 0x00, 0x00}}},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 416 B

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 918 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 961 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 816 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,016 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,000 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 B

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 496 B

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 B

File diff suppressed because it is too large Load diff

View file

@ -1,243 +1,355 @@
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[];
extern const GeoLayout waluigi_armature_002_switch_option_002[];
extern const GeoLayout waluigi_right_hand_open_armature[];
extern const GeoLayout waluigi_left_hand_open_armature[];
extern const GeoLayout waluigi_left_hand_peace_armature[];
extern const GeoLayout waluigi_left_hand_cap_armature[];
extern const GeoLayout waluigi_left_hand_wing_cap_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_jump_waluigi_armature_002_switch_option_002[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_jump_waluigi_right_hand_open_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_jump_waluigi_left_hand_open_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_jump_waluigi_left_hand_peace_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_jump_waluigi_left_hand_cap_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_jump_waluigi_left_hand_wing_cap_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt1[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt2_jump_waluigi_armature_002_switch_option_002[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt2_jump_waluigi_right_hand_open_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt2_jump_waluigi_left_hand_open_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt2_jump_waluigi_left_hand_peace_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt2_jump_waluigi_left_hand_cap_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt2_jump_waluigi_left_hand_wing_cap_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt2[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt3_jump_waluigi_armature_002_switch_option_002[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt3_jump_waluigi_right_hand_open_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt3_jump_waluigi_left_hand_open_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt3_jump_waluigi_left_hand_peace_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt3_jump_waluigi_left_hand_cap_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt3_jump_waluigi_left_hand_wing_cap_armature[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt3[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[];
extern const GeoLayout waluigi_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt1[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt2[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt3[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt4[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt5[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt6[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt7[];
extern const GeoLayout waluigi_Head_Dead_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt1[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt2[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt3[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt4[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt5[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt6[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt7[];
extern const GeoLayout waluigi_Switch_Option_Head_Dead_Capless_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt1[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt2[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt3[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt4[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt5[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt6[];
extern const GeoLayout waluigi_Head_Capless_Armature[];
extern const GeoLayout waluigi_Left_Hand_Open_Armature[];
extern const GeoLayout waluigi_Right_Hand_Open_Armature[];
extern const GeoLayout waluigi_Right_Hand_Peace_Armature[];
extern const GeoLayout waluigi_Right_Hand_Cap_Armature[];
extern const GeoLayout waluigi_Right_Hand_Wing_Cap_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt1[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt2[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt3[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt4[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt5[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt6[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt7_Eye_Material_Switch_Capless_opt7[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_jump_waluigi_Head_Dead_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt1[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt2[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt3[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt4[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt5[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt6[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt7_Eye_Material_Switch_Capless_opt7[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_jump_waluigi_Head_Capless_Armature_jump_waluigi_Switch_Option_Head_Dead_Capless_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt1[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt2[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt3[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt4[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt5[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt1_Eye_Material_Switch_Capless_opt6[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_jump_waluigi_Head_Capless_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_jump_waluigi_Left_Hand_Open_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_jump_waluigi_Right_Hand_Open_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_jump_waluigi_Right_Hand_Peace_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_jump_waluigi_Right_Hand_Cap_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_jump_waluigi_Right_Hand_Wing_Cap_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt1[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt2[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt3[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt4[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt5[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1_Hatless_Switch_opt0_Eye_Material_Switch_opt6[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt1[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt2_jump_waluigi_Head_Dead_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt2_jump_waluigi_Head_Capless_Armature_jump_waluigi_Switch_Option_Head_Dead_Capless_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt2_jump_waluigi_Head_Capless_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt2_jump_waluigi_Left_Hand_Open_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt2_jump_waluigi_Right_Hand_Open_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt2_jump_waluigi_Right_Hand_Peace_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt2_jump_waluigi_Right_Hand_Cap_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt2_jump_waluigi_Right_Hand_Wing_Cap_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt2[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt3_jump_waluigi_Head_Dead_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt3_jump_waluigi_Head_Capless_Armature_jump_waluigi_Switch_Option_Head_Dead_Capless_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt3_jump_waluigi_Head_Capless_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt3_jump_waluigi_Left_Hand_Open_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt3_jump_waluigi_Right_Hand_Open_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt3_jump_waluigi_Right_Hand_Peace_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt3_jump_waluigi_Right_Hand_Cap_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt3_jump_waluigi_Right_Hand_Wing_Cap_Armature[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt3[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt1[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt2[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt3[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt4[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt5[];
extern const GeoLayout waluigi_2_LoD_Switch_opt0_Cap_Effect_Switch_opt0_Hatless_Switch_opt0_Eye_Material_Switch_opt6[];
extern const GeoLayout waluigi_geo[];
extern Lights1 waluigi_body_v3_lights;
extern Lights1 waluigi_cap_v3_lights;
extern Lights1 waluigi_face_0___eye_open_v3_lights;
extern Lights1 waluigi_hair_v3_lights;
extern Lights1 waluigi_sideburns_v3_lights;
extern Lights1 waluigi_mustache_v3_lights;
extern Lights1 waluigi_nose_v3_lights;
extern Lights1 waluigi_mouth_v3_lights;
extern Lights1 waluigi_mustache_wah_lights;
extern Lights1 waluigi_face_1___eye_half_v3_lights;
extern Lights1 waluigi_face_2___eye_closed_v3_lights;
extern Lights1 waluigi_face_7___eye_X_v3_lights;
extern Lights1 waluigi_gloves_v3_lights;
extern Lights1 waluigi_shoes_v3_lights;
extern ALIGNED8 const Texture waluigi_mario_button_rgba16[];
extern ALIGNED8 const Texture waluigi_metal_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_cap_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes0_rgba16[];
extern ALIGNED8 const Texture waluigi_mario_sideburn_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_mouth_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes1_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes2_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes3_rgba16[];
extern ALIGNED8 const Texture waluigi_wing_2_rgba16[];
extern ALIGNED8 const Texture waluigi_wing1_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_glove_rgba16[];
extern Vtx waluigi_000_offset_mesh_layer_1_vtx_0[76];
extern Gfx waluigi_000_offset_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_001_mesh_layer_1_vtx_0[118];
extern Gfx waluigi_000_offset_001_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_001_mesh_layer_1_vtx_1[23];
extern Gfx waluigi_000_offset_001_mesh_layer_1_tri_1[];
extern Vtx waluigi_000_displaylist_mesh_layer_1_vtx_0[57];
extern Gfx waluigi_000_displaylist_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_displaylist_mesh_layer_1_vtx_1[45];
extern Gfx waluigi_000_displaylist_mesh_layer_1_tri_1[];
extern Vtx waluigi_000_displaylist_mesh_layer_1_vtx_2[46];
extern Gfx waluigi_000_displaylist_mesh_layer_1_tri_2[];
extern Vtx waluigi_000_displaylist_mesh_layer_1_vtx_3[17];
extern Gfx waluigi_000_displaylist_mesh_layer_1_tri_3[];
extern Vtx waluigi_000_displaylist_mesh_layer_1_vtx_4[31];
extern Gfx waluigi_000_displaylist_mesh_layer_1_tri_4[];
extern Vtx waluigi_000_displaylist_mesh_layer_1_vtx_5[15];
extern Gfx waluigi_000_displaylist_mesh_layer_1_tri_5[];
extern Vtx waluigi_000_displaylist_mesh_layer_1_vtx_6[11];
extern Gfx waluigi_000_displaylist_mesh_layer_1_tri_6[];
extern Vtx waluigi_000_displaylist_mesh_layer_1_vtx_7[34];
extern Gfx waluigi_000_displaylist_mesh_layer_1_tri_7[];
extern Vtx waluigi_002_switch_option_head__no_cap__mesh_layer_1_vtx_0[45];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_tri_0[];
extern Vtx waluigi_002_switch_option_head__no_cap__mesh_layer_1_vtx_1[31];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_tri_1[];
extern Vtx waluigi_002_switch_option_head__no_cap__mesh_layer_1_vtx_2[15];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_tri_2[];
extern Vtx waluigi_002_switch_option_head__no_cap__mesh_layer_1_vtx_3[11];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_tri_3[];
extern Vtx waluigi_002_switch_option_head__no_cap__mesh_layer_1_vtx_4[19];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_tri_4[];
extern Vtx waluigi_002_switch_option_head__no_cap__mesh_layer_1_vtx_5[103];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_tri_5[];
extern Vtx waluigi_002_switch_option_head__no_cap__mesh_layer_1_vtx_6[42];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_tri_6[];
extern Vtx waluigi_000_displaylist_001_mesh_layer_4_vtx_0[4];
extern Gfx waluigi_000_displaylist_001_mesh_layer_4_tri_0[];
extern Vtx waluigi_000_displaylist_001_mesh_layer_4_vtx_1[4];
extern Gfx waluigi_000_displaylist_001_mesh_layer_4_tri_1[];
extern Vtx waluigi_000_displaylist_002_mesh_layer_4_vtx_0[4];
extern Gfx waluigi_000_displaylist_002_mesh_layer_4_tri_0[];
extern Vtx waluigi_000_displaylist_002_mesh_layer_4_vtx_1[4];
extern Gfx waluigi_000_displaylist_002_mesh_layer_4_tri_1[];
extern Vtx waluigi_000_offset_003_mesh_layer_1_vtx_0[31];
extern Gfx waluigi_000_offset_003_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_004_mesh_layer_1_vtx_0[16];
extern Gfx waluigi_000_offset_004_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_displaylist_003_mesh_layer_1_vtx_0[56];
extern Gfx waluigi_000_displaylist_003_mesh_layer_1_tri_0[];
extern Vtx waluigi_002_switch_option_right_hand_open_mesh_layer_1_vtx_0[74];
extern Gfx waluigi_002_switch_option_right_hand_open_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_006_mesh_layer_1_vtx_0[28];
extern Gfx waluigi_000_offset_006_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_007_mesh_layer_1_vtx_0[16];
extern Gfx waluigi_000_offset_007_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_displaylist_004_mesh_layer_1_vtx_0[60];
extern Gfx waluigi_000_displaylist_004_mesh_layer_1_tri_0[];
extern Vtx waluigi_002_switch_option_left_hand_open_mesh_layer_1_vtx_0[73];
extern Gfx waluigi_002_switch_option_left_hand_open_mesh_layer_1_tri_0[];
extern Vtx waluigi_004_switch_option_left_hand_peace_mesh_layer_1_vtx_0[85];
extern Gfx waluigi_004_switch_option_left_hand_peace_mesh_layer_1_tri_0[];
extern Vtx waluigi_005_switch_option_left_hand_cap_mesh_layer_1_vtx_0[59];
extern Gfx waluigi_005_switch_option_left_hand_cap_mesh_layer_1_tri_0[];
extern Vtx waluigi_005_switch_option_left_hand_cap_mesh_layer_1_vtx_1[46];
extern Gfx waluigi_005_switch_option_left_hand_cap_mesh_layer_1_tri_1[];
extern Vtx waluigi_006_switch_option_left_hand_wing_cap_mesh_layer_1_vtx_0[59];
extern Gfx waluigi_006_switch_option_left_hand_wing_cap_mesh_layer_1_tri_0[];
extern Vtx waluigi_006_switch_option_left_hand_wing_cap_mesh_layer_1_vtx_1[46];
extern Gfx waluigi_006_switch_option_left_hand_wing_cap_mesh_layer_1_tri_1[];
extern Vtx waluigi_006_switch_option_left_hand_wing_cap_wings_mesh_layer_4_vtx_0[8];
extern Gfx waluigi_006_switch_option_left_hand_wing_cap_wings_mesh_layer_4_tri_0[];
extern Vtx waluigi_006_switch_option_left_hand_wing_cap_wings_mesh_layer_4_vtx_1[8];
extern Gfx waluigi_006_switch_option_left_hand_wing_cap_wings_mesh_layer_4_tri_1[];
extern Vtx waluigi_000_offset_009_mesh_layer_1_vtx_0[22];
extern Gfx waluigi_000_offset_009_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_010_LEFT_KNEE_mesh_layer_1_vtx_0[12];
extern Gfx waluigi_000_offset_010_LEFT_KNEE_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_011_BOTTOM_LEG_mesh_layer_1_vtx_0[29];
extern Gfx waluigi_000_offset_011_BOTTOM_LEG_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_012_mesh_layer_1_vtx_0[22];
extern Gfx waluigi_000_offset_012_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_offset_013_RIGHT_KNEE_mesh_layer_1_vtx_0[12];
extern Gfx waluigi_000_offset_013_RIGHT_KNEE_mesh_layer_1_tri_0[];
extern Vtx waluigi_000_displaylist_005_mesh_layer_1_vtx_0[28];
extern Gfx waluigi_000_displaylist_005_mesh_layer_1_tri_0[];
extern Gfx mat_waluigi_body_v3[];
extern Gfx mat_waluigi_metal_v3[];
extern Gfx mat_revert_waluigi_metal_v3[];
extern Gfx mat_waluigi_cap_v3[];
extern Gfx mat_waluigi_face_0___eye_open_v3[];
extern Gfx mat_waluigi_hair_v3[];
extern Gfx mat_waluigi_sideburns_v3[];
extern Gfx mat_waluigi_mustache_v3[];
extern Gfx mat_waluigi_nose_v3[];
extern Gfx mat_waluigi_mouth_v3[];
extern Gfx mat_waluigi_mustache_wah[];
extern Gfx mat_waluigi_face_1___eye_half_v3[];
extern Gfx mat_waluigi_face_2___eye_closed_v3[];
extern Gfx mat_waluigi_face_7___eye_X_v3[];
extern Gfx mat_waluigi_wing_2_v3[];
extern Gfx mat_revert_waluigi_wing_2_v3[];
extern Gfx mat_waluigi_wing_1_v3[];
extern Gfx mat_revert_waluigi_wing_1_v3[];
extern Gfx mat_waluigi_gloves_v3[];
extern Gfx mat_waluigi_shoes_v3[];
extern Gfx waluigi_000_offset_mesh_layer_1[];
extern Gfx waluigi_000_offset_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_001_mesh_layer_1[];
extern Gfx waluigi_000_offset_001_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_displaylist_mesh_layer_1[];
extern Gfx waluigi_000_displaylist_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_displaylist_mesh_layer_1_mat_override_face_1___eye_half_v3_1[];
extern Gfx waluigi_000_displaylist_mesh_layer_1_mat_override_face_2___eye_closed_v3_2[];
extern Gfx waluigi_000_displaylist_mesh_layer_1_mat_override_face_7___eye_X_v3_3[];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1[];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_mat_override_face_1___eye_half_v3_1[];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_mat_override_face_2___eye_closed_v3_2[];
extern Gfx waluigi_002_switch_option_head__no_cap__mesh_layer_1_mat_override_face_7___eye_X_v3_3[];
extern Gfx waluigi_000_displaylist_001_mesh_layer_4[];
extern Gfx waluigi_000_displaylist_001_mesh_layer_4_mat_override_metal_v3_0[];
extern Gfx waluigi_000_displaylist_002_mesh_layer_4[];
extern Gfx waluigi_000_displaylist_002_mesh_layer_4_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_003_mesh_layer_1[];
extern Gfx waluigi_000_offset_003_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_004_mesh_layer_1[];
extern Gfx waluigi_000_offset_004_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_displaylist_003_mesh_layer_1[];
extern Gfx waluigi_000_displaylist_003_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_002_switch_option_right_hand_open_mesh_layer_1[];
extern Gfx waluigi_002_switch_option_right_hand_open_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_006_mesh_layer_1[];
extern Gfx waluigi_000_offset_006_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_007_mesh_layer_1[];
extern Gfx waluigi_000_offset_007_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_displaylist_004_mesh_layer_1[];
extern Gfx waluigi_000_displaylist_004_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_002_switch_option_left_hand_open_mesh_layer_1[];
extern Gfx waluigi_002_switch_option_left_hand_open_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_004_switch_option_left_hand_peace_mesh_layer_1[];
extern Gfx waluigi_004_switch_option_left_hand_peace_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_005_switch_option_left_hand_cap_mesh_layer_1[];
extern Gfx waluigi_005_switch_option_left_hand_cap_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_006_switch_option_left_hand_wing_cap_mesh_layer_1[];
extern Gfx waluigi_006_switch_option_left_hand_wing_cap_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_006_switch_option_left_hand_wing_cap_wings_mesh_layer_4[];
extern Gfx waluigi_006_switch_option_left_hand_wing_cap_wings_mesh_layer_4_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_009_mesh_layer_1[];
extern Gfx waluigi_000_offset_009_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_010_LEFT_KNEE_mesh_layer_1[];
extern Gfx waluigi_000_offset_010_LEFT_KNEE_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_011_BOTTOM_LEG_mesh_layer_1[];
extern Gfx waluigi_000_offset_011_BOTTOM_LEG_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_012_mesh_layer_1[];
extern Gfx waluigi_000_offset_012_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_offset_013_RIGHT_KNEE_mesh_layer_1[];
extern Gfx waluigi_000_offset_013_RIGHT_KNEE_mesh_layer_1_mat_override_metal_v3_0[];
extern Gfx waluigi_000_displaylist_005_mesh_layer_1[];
extern Gfx waluigi_000_displaylist_005_mesh_layer_1_mat_override_metal_v3_0[];
extern Lights1 waluigi_body_lights;
extern Lights1 waluigi_metal_lights;
extern Lights1 waluigi_shirt_lights;
extern Lights1 waluigi_cap_lights;
extern Lights1 waluigi_eyes_open_lights;
extern Lights1 waluigi_hair_lights;
extern Lights1 waluigi_nose_lights;
extern Lights1 waluigi_mouth_closed_lights;
extern Lights1 waluigi_moustache_lights;
extern Lights1 waluigi_sideburns_lights;
extern Lights1 waluigi_eyes_half_lights;
extern Lights1 waluigi_eyes_closed_lights;
extern Lights1 waluigi_eyes_left_lights;
extern Lights1 waluigi_eyes_right_lights;
extern Lights1 waluigi_eyes_up_lights;
extern Lights1 waluigi_eyes_down_lights;
extern Lights1 waluigi_waluigi_mouth_open_lights;
extern Lights1 waluigi_eyes_dead_lights;
extern Lights1 waluigi_gloves_lights;
extern Lights1 waluigi_shoes_lights;
extern Vtx waluigi_Butt_mesh_layer_1_vtx_0[76];
extern Gfx waluigi_Butt_mesh_layer_1_tri_0[];
extern Vtx waluigi_Torso_mesh_layer_1_vtx_0[107];
extern Gfx waluigi_Torso_mesh_layer_1_tri_0[];
extern Vtx waluigi_Torso_mesh_layer_1_vtx_1[31];
extern Gfx waluigi_Torso_mesh_layer_1_tri_1[];
extern Vtx waluigi_Head_DL_mesh_layer_1_vtx_0[56];
extern Gfx waluigi_Head_DL_mesh_layer_1_tri_0[];
extern Vtx waluigi_Head_DL_mesh_layer_1_vtx_1[73];
extern Gfx waluigi_Head_DL_mesh_layer_1_tri_1[];
extern Vtx waluigi_Head_DL_mesh_layer_1_vtx_2[31];
extern Gfx waluigi_Head_DL_mesh_layer_1_tri_2[];
extern Vtx waluigi_Head_DL_mesh_layer_1_vtx_3[23];
extern Gfx waluigi_Head_DL_mesh_layer_1_tri_3[];
extern Vtx waluigi_Head_DL_mesh_layer_1_vtx_4[53];
extern Gfx waluigi_Head_DL_mesh_layer_1_tri_4[];
extern Vtx waluigi_Head_DL_mesh_layer_1_vtx_5[10];
extern Gfx waluigi_Head_DL_mesh_layer_1_tri_5[];
extern Vtx waluigi_Head_DL_mesh_layer_5_vtx_0[10];
extern Gfx waluigi_Head_DL_mesh_layer_5_tri_0[];
extern Vtx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_0[66];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_0[];
extern Vtx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_1[60];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_1[];
extern Vtx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_2[10];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_2[];
extern Vtx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_3[23];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_3[];
extern Vtx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_4[53];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_4[];
extern Vtx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_5[31];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_5[];
extern Vtx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_vtx_0[10];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_tri_0[];
extern Vtx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_vtx_0[101];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_tri_0[];
extern Vtx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_vtx_1[63];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_tri_1[];
extern Vtx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_vtx_2[10];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_tri_2[];
extern Vtx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_vtx_3[23];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_tri_3[];
extern Vtx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_vtx_4[53];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_tri_4[];
extern Vtx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5_vtx_0[10];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5_tri_0[];
extern Vtx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_0[101];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_0[];
extern Vtx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_1[63];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_1[];
extern Vtx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_2[10];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_2[];
extern Vtx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_3[23];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_3[];
extern Vtx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_vtx_4[53];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_tri_4[];
extern Vtx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_vtx_0[10];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_tri_0[];
extern Vtx waluigi_Left_Wing_DL_mesh_layer_4_vtx_0[4];
extern Gfx waluigi_Left_Wing_DL_mesh_layer_4_tri_0[];
extern Vtx waluigi_Left_Wing_DL_mesh_layer_4_vtx_1[4];
extern Gfx waluigi_Left_Wing_DL_mesh_layer_4_tri_1[];
extern Vtx waluigi_Right_Wing_DL_mesh_layer_4_vtx_0[4];
extern Gfx waluigi_Right_Wing_DL_mesh_layer_4_tri_0[];
extern Vtx waluigi_Right_Wing_DL_mesh_layer_4_vtx_1[4];
extern Gfx waluigi_Right_Wing_DL_mesh_layer_4_tri_1[];
extern Vtx waluigi_Left_Arm_Color_mesh_layer_1_vtx_0[31];
extern Gfx waluigi_Left_Arm_Color_mesh_layer_1_tri_0[];
extern Vtx waluigi_Left_Forearm_mesh_layer_1_vtx_0[16];
extern Gfx waluigi_Left_Forearm_mesh_layer_1_tri_0[];
extern Vtx waluigi_Left_Hand_DL_mesh_layer_1_vtx_0[54];
extern Gfx waluigi_Left_Hand_DL_mesh_layer_1_tri_0[];
extern Vtx waluigi_Switch_Option_Left_Hand_Open_mesh_layer_1_vtx_0[72];
extern Gfx waluigi_Switch_Option_Left_Hand_Open_mesh_layer_1_tri_0[];
extern Vtx waluigi_Right_Arm_Color_mesh_layer_1_vtx_0[28];
extern Gfx waluigi_Right_Arm_Color_mesh_layer_1_tri_0[];
extern Vtx waluigi_Right_Forearm_mesh_layer_1_vtx_0[16];
extern Gfx waluigi_Right_Forearm_mesh_layer_1_tri_0[];
extern Vtx waluigi_Right_Hand_DL_mesh_layer_1_vtx_0[55];
extern Gfx waluigi_Right_Hand_DL_mesh_layer_1_tri_0[];
extern Vtx waluigi_Switch_Option_Right_Hand_Open_mesh_layer_1_vtx_0[73];
extern Gfx waluigi_Switch_Option_Right_Hand_Open_mesh_layer_1_tri_0[];
extern Vtx waluigi_Switch_Option_Right_Hand_Peace_mesh_layer_1_vtx_0[86];
extern Gfx waluigi_Switch_Option_Right_Hand_Peace_mesh_layer_1_tri_0[];
extern Vtx waluigi_Switch_Option_Right_Hand_Cap_mesh_layer_1_vtx_0[59];
extern Gfx waluigi_Switch_Option_Right_Hand_Cap_mesh_layer_1_tri_0[];
extern Vtx waluigi_Switch_Option_Right_Hand_Cap_mesh_layer_1_vtx_1[46];
extern Gfx waluigi_Switch_Option_Right_Hand_Cap_mesh_layer_1_tri_1[];
extern Vtx waluigi_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_vtx_0[59];
extern Gfx waluigi_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_tri_0[];
extern Vtx waluigi_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_vtx_1[46];
extern Gfx waluigi_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_tri_1[];
extern Vtx waluigi_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_vtx_0[8];
extern Gfx waluigi_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_tri_0[];
extern Vtx waluigi_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_vtx_1[8];
extern Gfx waluigi_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_tri_1[];
extern Vtx waluigi_Left_Thigh_Color_mesh_layer_1_vtx_0[22];
extern Gfx waluigi_Left_Thigh_Color_mesh_layer_1_tri_0[];
extern Vtx waluigi_Left_Leg_mesh_layer_1_vtx_0[12];
extern Gfx waluigi_Left_Leg_mesh_layer_1_tri_0[];
extern Vtx waluigi_Left_Foot_mesh_layer_1_vtx_0[15];
extern Gfx waluigi_Left_Foot_mesh_layer_1_tri_0[];
extern Vtx waluigi_Right_Thigh_Color_mesh_layer_1_vtx_0[22];
extern Gfx waluigi_Right_Thigh_Color_mesh_layer_1_tri_0[];
extern Vtx waluigi_Right_Leg_mesh_layer_1_vtx_0[12];
extern Gfx waluigi_Right_Leg_mesh_layer_1_tri_0[];
extern Vtx waluigi_Right_Foot_DL_mesh_layer_1_vtx_0[15];
extern Gfx waluigi_Right_Foot_DL_mesh_layer_1_tri_0[];
extern Gfx mat_waluigi_body[];
extern Gfx mat_waluigi_metal[];
extern Gfx mat_revert_waluigi_metal[];
extern Gfx mat_waluigi_shirt[];
extern Gfx mat_waluigi_cap[];
extern Gfx mat_waluigi_eyes_open[];
extern Gfx mat_waluigi_hair[];
extern Gfx mat_waluigi_nose[];
extern Gfx mat_waluigi_mouth_closed[];
extern Gfx mat_waluigi_moustache[];
extern Gfx mat_revert_waluigi_moustache[];
extern Gfx mat_waluigi_sideburns[];
extern Gfx mat_waluigi_eyes_half[];
extern Gfx mat_waluigi_eyes_closed[];
extern Gfx mat_waluigi_eyes_left[];
extern Gfx mat_waluigi_eyes_right[];
extern Gfx mat_waluigi_eyes_up[];
extern Gfx mat_waluigi_eyes_down[];
extern Gfx mat_waluigi_waluigi_mouth_open[];
extern Gfx mat_waluigi_eyes_dead[];
extern Gfx mat_waluigi_wing_2[];
extern Gfx mat_revert_waluigi_wing_2[];
extern Gfx mat_waluigi_wing_1[];
extern Gfx mat_revert_waluigi_wing_1[];
extern Gfx mat_waluigi_gloves[];
extern Gfx mat_waluigi_shoes[];
extern Gfx waluigi_Butt_mesh_layer_1[];
extern Gfx waluigi_Butt_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Torso_mesh_layer_1[];
extern Gfx waluigi_Torso_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Head_DL_mesh_layer_1[];
extern Gfx waluigi_Head_DL_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Head_DL_mesh_layer_1_mat_override_eyes_half_1[];
extern Gfx waluigi_Head_DL_mesh_layer_1_mat_override_eyes_closed_2[];
extern Gfx waluigi_Head_DL_mesh_layer_1_mat_override_eyes_left_3[];
extern Gfx waluigi_Head_DL_mesh_layer_1_mat_override_eyes_right_4[];
extern Gfx waluigi_Head_DL_mesh_layer_1_mat_override_eyes_up_5[];
extern Gfx waluigi_Head_DL_mesh_layer_1_mat_override_eyes_down_6[];
extern Gfx waluigi_Head_DL_mesh_layer_5[];
extern Gfx waluigi_Head_DL_mesh_layer_5_mat_override_metal_0[];
extern Gfx waluigi_Head_DL_mesh_layer_5_mat_override_eyes_half_1[];
extern Gfx waluigi_Head_DL_mesh_layer_5_mat_override_eyes_closed_2[];
extern Gfx waluigi_Head_DL_mesh_layer_5_mat_override_eyes_left_3[];
extern Gfx waluigi_Head_DL_mesh_layer_5_mat_override_eyes_right_4[];
extern Gfx waluigi_Head_DL_mesh_layer_5_mat_override_eyes_up_5[];
extern Gfx waluigi_Head_DL_mesh_layer_5_mat_override_eyes_down_6[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_half_1[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_closed_2[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_left_3[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_right_4[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_up_5[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_down_6[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_dead_7[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_half_1[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_closed_2[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_left_3[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_right_4[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_up_5[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_down_6[];
extern Gfx waluigi_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_dead_7[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_mat_override_eyes_half_1[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_mat_override_eyes_closed_2[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_mat_override_eyes_left_3[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_mat_override_eyes_right_4[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_mat_override_eyes_up_5[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_1_mat_override_eyes_down_6[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5_mat_override_eyes_half_1[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5_mat_override_eyes_closed_2[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5_mat_override_eyes_left_3[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5_mat_override_eyes_right_4[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5_mat_override_eyes_up_5[];
extern Gfx waluigi_Switch_Option_Head_Capless_DL_mesh_layer_5_mat_override_eyes_down_6[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_half_1[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_closed_2[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_left_3[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_right_4[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_up_5[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_down_6[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_1_mat_override_eyes_dead_7[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_half_1[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_closed_2[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_left_3[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_right_4[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_up_5[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_down_6[];
extern Gfx waluigi_Switch_Option_Switch_Option_Head_Capless_Dead_DL_mesh_layer_5_mat_override_eyes_dead_7[];
extern Gfx waluigi_Left_Wing_DL_mesh_layer_4[];
extern Gfx waluigi_Left_Wing_DL_mesh_layer_4_mat_override_metal_0[];
extern Gfx waluigi_Right_Wing_DL_mesh_layer_4[];
extern Gfx waluigi_Right_Wing_DL_mesh_layer_4_mat_override_metal_0[];
extern Gfx waluigi_Left_Arm_Color_mesh_layer_1[];
extern Gfx waluigi_Left_Arm_Color_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Left_Forearm_mesh_layer_1[];
extern Gfx waluigi_Left_Forearm_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Left_Hand_DL_mesh_layer_1[];
extern Gfx waluigi_Left_Hand_DL_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Left_Hand_Open_mesh_layer_1[];
extern Gfx waluigi_Switch_Option_Left_Hand_Open_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Right_Arm_Color_mesh_layer_1[];
extern Gfx waluigi_Right_Arm_Color_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Right_Forearm_mesh_layer_1[];
extern Gfx waluigi_Right_Forearm_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Right_Hand_DL_mesh_layer_1[];
extern Gfx waluigi_Right_Hand_DL_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Right_Hand_Open_mesh_layer_1[];
extern Gfx waluigi_Switch_Option_Right_Hand_Open_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Right_Hand_Peace_mesh_layer_1[];
extern Gfx waluigi_Switch_Option_Right_Hand_Peace_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Right_Hand_Cap_mesh_layer_1[];
extern Gfx waluigi_Switch_Option_Right_Hand_Cap_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1[];
extern Gfx waluigi_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4[];
extern Gfx waluigi_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_mat_override_metal_0[];
extern Gfx waluigi_Left_Thigh_Color_mesh_layer_1[];
extern Gfx waluigi_Left_Thigh_Color_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Left_Leg_mesh_layer_1[];
extern Gfx waluigi_Left_Leg_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Left_Foot_mesh_layer_1[];
extern Gfx waluigi_Left_Foot_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Right_Thigh_Color_mesh_layer_1[];
extern Gfx waluigi_Right_Thigh_Color_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Right_Leg_mesh_layer_1[];
extern Gfx waluigi_Right_Leg_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_Right_Foot_DL_mesh_layer_1[];
extern Gfx waluigi_Right_Foot_DL_mesh_layer_1_mat_override_metal_0[];
extern Gfx waluigi_material_revert_render_settings[];

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -38,7 +38,8 @@ in_files = [
"include/seq_ids.h",
"include/surface_terrains.h",
"src/game/level_update.h",
"src/pc/network/version.h"
"src/pc/network/version.h",
"include/level_commands.h"
]
exclude_constants = {
@ -47,6 +48,7 @@ exclude_constants = {
}
include_constants = {
'include/level_commands.h': [ "WARP_CHECKPOINT", "WARP_NO_CHECKPOINT" ],
}
pretend_find = [

View file

@ -55,7 +55,9 @@ in_files = [
"src/game/mario_misc.h",
"src/pc/mods/mod_storage.h",
"src/pc/utils/misc.h",
"src/game/level_update.h"
"src/game/level_update.h",
"src/game/area.h",
"src/engine/level_script.h"
]
override_allowed_functions = {
@ -66,8 +68,10 @@ override_allowed_functions = {
"src/pc/lua/utils/smlua_model_utils.h": [ "smlua_model_util_get_id" ],
"src/game/object_list_processor.h": [ "set_object_respawn_info_bits" ],
"src/game/mario_misc.h": [ "bhv_toad.*", "bhv_unlock_door.*" ],
"src/pc/utils/misc.h": [ "update_all_mario_stars" ],
"src/game/level_update.h": [ "level_trigger_warp" ],
"src/pc/utils/misc.h": [ "update_all_mario_stars"],
"src/game/area.h": [ "area_get_warp_node" ],
"src/engine/level_script.h": [ "area_create_warp_node" ]
}
override_disallowed_functions = {

View file

@ -24,6 +24,7 @@ in_files = [
'src/game/hardcoded.h',
'src/pc/mods/mod.h',
'src/pc/lua/utils/smlua_audio_utils.h',
'src/game/paintings.h'
]
out_filename_c = 'src/pc/lua/smlua_cobject_autogen.c'
@ -89,6 +90,7 @@ override_field_immutable = {
"Mod": [ "*" ],
"ModFile": [ "*" ],
"BassAudio": [ "*" ],
"Painting": [ "id", "imageCount", "textureType", "textureWidth", "textureHeight" ]
}
override_allowed_structs = {

View file

@ -1989,7 +1989,13 @@ id_RM_Scroll_Texture = 535
id_editor_Scroll_Texture = 536
--- @type BehaviorId
id_bhv_max_count = 537
id_bhvBlueCoinNumber = 537
--- @type BehaviorId
id_bhvStarNumber = 538
--- @type BehaviorId
id_bhv_max_count = 539
--- @type integer
CAMERA_MODE_8_DIRECTIONS = 0x0E
@ -3627,6 +3633,12 @@ INTERACT_IGLOO_BARRIER = (1 << 30)
--- @type InteractionType
INTERACT_PLAYER = (1 << 31)
--- @type integer
WARP_CHECKPOINT = 0x80
--- @type integer
WARP_NO_CHECKPOINT = 0x00
--- @class LevelNum
--- @type LevelNum
@ -3907,6 +3919,12 @@ HUD_DISPLAY_FLAG_UNKNOWN_0020 = 0x0020
--- @type HUDDisplayFlag
HUD_DISPLAY_FLAG_TIMER = 0x0040
--- @type HUDDisplayFlag
HUD_DISPLAY_FLAG_CAMERA = 0x0080
--- @type HUDDisplayFlag
HUD_DISPLAY_FLAG_POWER = 0x0100
--- @type HUDDisplayFlag
HUD_DISPLAY_FLAG_EMPHASIZE_POWER = 0x8000
@ -3914,7 +3932,7 @@ HUD_DISPLAY_FLAG_EMPHASIZE_POWER = 0x8000
HUD_DISPLAY_NONE = 0x0000
--- @type HUDDisplayFlag
HUD_DISPLAY_DEFAULT = HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020
HUD_DISPLAY_DEFAULT = HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_CAMERA | HUD_DISPLAY_FLAG_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020
--- @class MarioAnimID
@ -4739,6 +4757,9 @@ ACTIVE_FLAG_DEACTIVATED = 0
--- @type integer
ACTIVE_FLAG_DITHERED_ALPHA = (1 << 7)
--- @type integer
ACTIVE_FLAG_DORMANT = (1 << 11)
--- @type integer
ACTIVE_FLAG_FAR_AWAY = (1 << 1)
@ -4931,6 +4952,9 @@ BLUE_COIN_SWITCH_ACT_IDLE = 0
--- @type integer
BLUE_COIN_SWITCH_ACT_RECEDING = 1
--- @type integer
BLUE_COIN_SWITCH_ACT_RESPAWNING = 3
--- @type integer
BLUE_COIN_SWITCH_ACT_TICKING = 2
@ -8168,6 +8192,12 @@ HUD_DISPLAY_FLAGS_UNKNOWN_0020 = 0x0020
--- @type HudDisplayFlags
HUD_DISPLAY_FLAGS_TIMER = 0x0040
--- @type HudDisplayFlags
HUD_DISPLAY_FLAGS_CAMERA = 0x0080
--- @type HudDisplayFlags
HUD_DISPLAY_FLAGS_POWER = 0x0100
--- @type HudDisplayFlags
HUD_DISPLAY_FLAGS_EMPHASIZE_POWER = 0x8000
@ -11408,4 +11438,4 @@ MAX_VERSION_LENGTH = 10
MINOR_VERSION_NUMBER = 0
--- @type integer
VERSION_NUMBER = 31
VERSION_NUMBER = 32

View file

@ -1,5 +1,17 @@
-- AUTOGENERATED FOR CODE EDITORS --
--- @param id integer
--- @return ObjectWarpNode
function area_get_warp_node(id)
-- ...
end
--- @param o Object
--- @return ObjectWarpNode
function area_get_warp_node_from_params(o)
-- ...
end
--- @param a0 Vec3f
--- @param a1 Vec3f
--- @param yVel number
@ -274,6 +286,11 @@ function bhv_blue_coin_jumping_loop()
-- ...
end
--- @return nil
function bhv_blue_coin_number_loop()
-- ...
end
--- @return nil
function bhv_blue_coin_sliding_jumping_init()
-- ...
@ -284,6 +301,11 @@ function bhv_blue_coin_sliding_loop()
-- ...
end
--- @return nil
function bhv_blue_coin_switch_init()
-- ...
end
--- @return nil
function bhv_blue_coin_switch_loop()
-- ...
@ -2157,6 +2179,11 @@ function bhv_star_key_collection_puff_spawner_loop()
-- ...
end
--- @return nil
function bhv_star_number_loop()
-- ...
end
--- @return nil
function bhv_star_spawn_init()
-- ...
@ -2821,6 +2848,11 @@ function spawn_red_coin_cutscene_star(x, y, z)
-- ...
end
--- @return nil
function spawn_star_number()
-- ...
end
--- @param numTris integer
--- @param triModel integer
--- @param triSize number
@ -4002,6 +4034,17 @@ function get_star_name_sm64(courseNum, starNum, charCase)
-- ...
end
--- @param id integer
--- @param destLevel integer
--- @param destArea integer
--- @param destNode integer
--- @param checkpoint integer
--- @param o Object
--- @return ObjectWarpNode
function area_create_warp_node(id, destLevel, destArea, destNode, checkpoint, o)
-- ...
end
--- @param m MarioState
--- @param warpOp integer
--- @return integer
@ -8191,11 +8234,22 @@ function camera_freeze()
-- ...
end
--- @return boolean
function camera_is_frozen()
-- ...
end
--- @return nil
function camera_unfreeze()
-- ...
end
--- @param levelNum integer
--- @return boolean
function course_is_main_course(levelNum)
-- ...
end
--- @param pointer Pointer_integer
--- @return integer
function deref_s32_pointer(pointer)
@ -8271,6 +8325,11 @@ function hud_hide()
-- ...
end
--- @return boolean
function hud_is_hidden()
-- ...
end
--- @param health integer
--- @param x number
--- @param y number

View file

@ -46,6 +46,9 @@ gPalettePresets = {}
--- @type LakituState
gLakituState = {}
--- @type PaintingValues
gPaintingValues = {}
-----------
-- hooks --
-----------

View file

@ -525,10 +525,12 @@
--- @field public wooden_signpost_seg3_collision_0302DD80 Pointer_Collision
--- @class GlobalTextures
--- @field public apostrophe TextureInfo
--- @field public arrow_down TextureInfo
--- @field public arrow_up TextureInfo
--- @field public camera TextureInfo
--- @field public coin TextureInfo
--- @field public double_quote TextureInfo
--- @field public lakitu TextureInfo
--- @field public luigi_head TextureInfo
--- @field public mario_head TextureInfo
@ -553,6 +555,7 @@
--- @field public animInfo AnimInfo
--- @field public areaIndex integer
--- @field public cameraToObject Vec3f
--- @field public disableAutomaticShadowPos boolean
--- @field public node GraphNode
--- @field public pos Vec3f
--- @field public prevAngle Vec3s
@ -565,6 +568,8 @@
--- @field public prevThrowMatrixTimestamp integer
--- @field public prevTimestamp integer
--- @field public scale Vec3f
--- @field public shadowInvisible boolean
--- @field public shadowPos Vec3f
--- @field public sharedChild GraphNode
--- @field public skipInViewCheck boolean
--- @field public skipInterpolationTimestamp integer
@ -635,24 +640,36 @@
--- @field public exitCastleArea integer
--- @field public exitCastleLevel LevelNum
--- @field public exitCastleWarpNode integer
--- @field public extendedPauseDisplay integer
--- @field public fixCollisionBugs integer
--- @field public fixVanishFloors boolean
--- @field public fixVanishFloors integer
--- @field public floatingStarDance integer
--- @field public floorLowerLimit integer
--- @field public floorLowerLimitMisc integer
--- @field public floorLowerLimitShadow integer
--- @field public hudCapTimer integer
--- @field public hudRedCoinsRadar integer
--- @field public hudSecretsRadar integer
--- @field public metalCapDuration integer
--- @field public metalCapDurationCotmc integer
--- @field public pauseExitAnywhere boolean
--- @field public metalCapSequence integer
--- @field public mushroom1UpHeal integer
--- @field public pauseExitAnywhere boolean
--- @field public previewBlueCoins integer
--- @field public pssSlideStarIndex integer
--- @field public pssSlideStarTime integer
--- @field public respawnBlueCoinsSwitch integer
--- @field public showStarNumber integer
--- @field public skipCreditsAt LevelNum
--- @field public starHeal integer
--- @field public starPositions StarPositions
--- @field public vanishCapDuration integer
--- @field public vanishCapDurationVcutm integer
--- @field public vanishCapSequence integer
--- @field public visibleSecrets integer
--- @field public wingCapDuration integer
--- @field public wingCapDurationTotwc integer
--- @field public wingCapLookUpReq integer
--- @field public wingCapSequence integer
--- @class LinearTransitionPoint
@ -754,7 +771,6 @@
--- @field public unkC4 number
--- @field public usedObj Object
--- @field public vel Vec3f
--- @field public visibleToEnemies integer
--- @field public wall Surface
--- @field public wallKickTimer integer
--- @field public wallNormal Vec3f
@ -1600,6 +1616,63 @@
--- @field public offset integer
--- @field public size integer
--- @class Painting
--- @field public alpha integer
--- @field public currFloor integer
--- @field public currRippleMag number
--- @field public currRippleRate number
--- @field public dispersionFactor number
--- @field public entryDispersionFactor number
--- @field public entryRippleDecay number
--- @field public entryRippleMag number
--- @field public entryRippleRate number
--- @field public floorEntered integer
--- @field public id integer
--- @field public imageCount integer
--- @field public lastFloor integer
--- @field public marioIsUnder integer
--- @field public marioWasUnder integer
--- @field public marioWentUnder integer
--- @field public passiveDispersionFactor number
--- @field public passiveRippleDecay number
--- @field public passiveRippleMag number
--- @field public passiveRippleRate number
--- @field public pitch number
--- @field public posX number
--- @field public posY number
--- @field public posZ number
--- @field public rippleDecay number
--- @field public rippleTimer number
--- @field public rippleTrigger integer
--- @field public rippleX number
--- @field public rippleY number
--- @field public size number
--- @field public state integer
--- @field public textureHeight integer
--- @field public textureType integer
--- @field public textureWidth integer
--- @field public yaw number
--- @class PaintingMeshVertex
--- @class PaintingValues
--- @field public bob_painting Painting
--- @field public ccm_painting Painting
--- @field public cotmc_painting Painting
--- @field public ddd_painting Painting
--- @field public hmc_painting Painting
--- @field public jrb_painting Painting
--- @field public lll_painting Painting
--- @field public sl_painting Painting
--- @field public ssl_painting Painting
--- @field public thi_huge_painting Painting
--- @field public thi_tiny_painting Painting
--- @field public ttc_painting Painting
--- @field public ttm_painting Painting
--- @field public ttm_slide_painting Painting
--- @field public wdw_painting Painting
--- @field public wf_painting Painting
--- @class ParallelTrackingPoint
--- @field public distThresh number
--- @field public pos Vec3f

View file

@ -2805,11 +2805,22 @@ const BehaviorScript bhvPurpleSwitchHiddenBoxes[] = {
GOTO(bhvFloorSwitchHardcodedModel + 1 + 1),
};
const BehaviorScript bhvBlueCoinNumber[] = {
BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvBlueCoinNumber),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
BILLBOARD(),
BEGIN_LOOP(),
CALL_NATIVE(bhv_blue_coin_number_loop),
END_LOOP(),
};
const BehaviorScript bhvBlueCoinSwitch[] = {
BEGIN(OBJ_LIST_SURFACE),
ID(id_bhvBlueCoinSwitch),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_COLLISION_DATA(blue_coin_switch_seg8_collision_08000E98),
CALL_NATIVE(bhv_blue_coin_switch_init),
BEGIN_LOOP(),
CALL_NATIVE(bhv_blue_coin_switch_loop),
END_LOOP(),
@ -4738,6 +4749,16 @@ const BehaviorScript bhvVanishCap[] = {
END_LOOP(),
};
const BehaviorScript bhvStarNumber[] = {
BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvStarNumber),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
BILLBOARD(),
BEGIN_LOOP(),
CALL_NATIVE(bhv_star_number_loop),
END_LOOP(),
};
const BehaviorScript bhvStar[] = {
BEGIN(OBJ_LIST_LEVEL),
ID(id_bhvStar),

View file

@ -61,6 +61,7 @@ const struct BehaviorTableEntry gBehaviorTable[id_bhv_max_count] = {
BHV_ENTRY(bhvBlueBowserFlame),
BHV_ENTRY(bhvBlueCoinJumping),
BHV_ENTRY(bhvBlueCoinSliding),
BHV_ENTRY(bhvBlueCoinNumber),
BHV_ENTRY(bhvBlueCoinSwitch),
BHV_ENTRY(bhvBlueFish),
BHV_ENTRY(bhvBlueFlamesGroup),
@ -423,6 +424,7 @@ const struct BehaviorTableEntry gBehaviorTable[id_bhv_max_count] = {
BHV_ENTRY(bhvStar),
BHV_ENTRY(bhvStarDoor),
BHV_ENTRY(bhvStarKeyCollectionPuffSpawner),
BHV_ENTRY(bhvStarNumber),
BHV_ENTRY(bhvStarSpawnCoordinates),
BHV_ENTRY(bhvStaticCheckeredPlatform),
BHV_ENTRY(bhvStaticObject),

View file

@ -89,6 +89,7 @@ public:
inline s32 Offset() const { return mOffset; }
inline bool EoF() const { return mOffset >= mSize; }
inline void SetOffset(s32 aOffset) const { mOffset = aOffset; }
inline const char *GetFilename() const { return mFilename; }
public:
static BinFile *OpenR(const char *aFilename) {

View file

@ -44,7 +44,7 @@ extern "C" {
// Current Behavior Version
#define BEHAVIOR_MAJOR_VER 1
#define BEHAVIOR_MINOR_VER 0
#define BEHAVIOR_PATCH_VER 0
#define BEHAVIOR_PATCH_VER 1
// Minimum Behavior Version (That can be read)
#define BEHAVIOR_MIN_MAJOR_VER 1
@ -286,6 +286,7 @@ s64 DynOS_Bhv_ParseBehaviorScriptConstants(const String &_Arg, bool *found) {
bhv_constant(id_bhvBlueBowserFlame);
bhv_constant(id_bhvBlueCoinJumping);
bhv_constant(id_bhvBlueCoinSliding);
bhv_constant(id_bhvBlueCoinNumber);
bhv_constant(id_bhvBlueCoinSwitch);
bhv_constant(id_bhvBlueFish);
bhv_constant(id_bhvBlueFlamesGroup);
@ -648,6 +649,7 @@ s64 DynOS_Bhv_ParseBehaviorScriptConstants(const String &_Arg, bool *found) {
bhv_constant(id_bhvStar);
bhv_constant(id_bhvStarDoor);
bhv_constant(id_bhvStarKeyCollectionPuffSpawner);
bhv_constant(id_bhvStarNumber);
bhv_constant(id_bhvStarSpawnCoordinates);
bhv_constant(id_bhvStaticCheckeredPlatform);
bhv_constant(id_bhvStaticObject);
@ -2485,6 +2487,15 @@ static bool DynOS_Bhv_WriteBinary(const SysPath &aOutputFilename, GfxData *aGfxD
/////////////
static DataNode<BehaviorScript> *DynOS_Bhv_Load(BinFile *aFile, GfxData *aGfxData) {
// Sanity check the files size. The minimum valid size is 9 bytes.
// 1 byte for the type, 1 bytes for the name length, 3 bytes for the version, And 4 bytes for the behaviors size.
if (aFile->Size() < 9) {
PrintError(" ERROR: Behavior file is smaller then it should be, Rejecting '%s'.", aFile->GetFilename());
// We have nothing to return, So return NULL.
return NULL;
}
// Allocate our node.
DataNode<BehaviorScript> *_Node = New<DataNode<BehaviorScript>>();
// Name
@ -2500,12 +2511,19 @@ static DataNode<BehaviorScript> *DynOS_Bhv_Load(BinFile *aFile, GfxData *aGfxDat
// If the major version doesn't match, then a drasitc change has happened and
// we can't read it no matter what. If it's just minor or patch. We might have
// code to support it.
u32 dataSize = aFile->Read<u32>();
if (majorVersion != BEHAVIOR_MIN_MAJOR_VER || (minorVersion < BEHAVIOR_MIN_MINOR_VER || patchVersion < BEHAVIOR_MIN_PATCH_VER)) {
PrintError(" ERROR: Behavior version is %u.%u.%u, but reading behaviors under %u.%u.%u is not supported!", majorVersion, minorVersion, patchVersion, BEHAVIOR_MIN_MAJOR_VER, BEHAVIOR_MIN_MINOR_VER, BEHAVIOR_MIN_PATCH_VER);
// Skip the rest of the bytes saved for this behavior.
aFile->Skip(dataSize);
PrintError(" ERROR: Behavior file is version %u.%u.%u, which is not supported! Rejecting '%s'.", majorVersion, minorVersion, patchVersion, aFile->GetFilename());
// We don't return this since we failed to read the behavior.
Delete(_Node);
// We have nothing to return, So return NULL.
return NULL;
}
// If we have nothing in the .bhv file, It compiled incorrectly or is maliciously crafted.
// We also check if the specified behavior size is valid for the file.
u32 dataSize = aFile->Read<u32>();
if (dataSize == 0 || (dataSize > (aFile->Size() - aFile->Offset()))) {
PrintError(" ERROR: Behavior file has a invalid behavior in it! Rejecting '%s'.", aFile->GetFilename());
// We don't return this since we failed to read the behavior.
Delete(_Node);
// We have nothing to return, So return NULL.
@ -2516,11 +2534,6 @@ static DataNode<BehaviorScript> *DynOS_Bhv_Load(BinFile *aFile, GfxData *aGfxDat
_Node->mSize = dataSize;
_Node->mData = New<BehaviorScript>(_Node->mSize);
// Add it
if (aGfxData != NULL) {
aGfxData->mBehaviorScripts.Add(_Node);
}
// Read it
for (u32 i = 0; i != _Node->mSize; ++i) {
if (aFile->EoF()) {
@ -2535,6 +2548,11 @@ static DataNode<BehaviorScript> *DynOS_Bhv_Load(BinFile *aFile, GfxData *aGfxDat
_Node->mData[i] = (uintptr_t) _Value;
}
}
// Add it
if (aGfxData != NULL) {
aGfxData->mBehaviorScripts.Add(_Node);
}
return _Node;
}

View file

@ -246,6 +246,7 @@ s64 DynOS_Common_ParseBhvConstants(const String &_Arg, bool *found) {
common_constant(bhvWhitePuff2);
common_constant(bhvWhitePuffSmoke2);
common_constant(bhvPurpleSwitchHiddenBoxes);
common_constant(bhvBlueCoinNumber);
common_constant(bhvBlueCoinSwitch);
common_constant(bhvHiddenBlueCoin);
common_constant(bhvOpenableCageDoor);
@ -415,6 +416,7 @@ s64 DynOS_Common_ParseBhvConstants(const String &_Arg, bool *found) {
common_constant(bhvNormalCap);
common_constant(bhvVanishCap);
common_constant(bhvStar);
common_constant(bhvStarNumber);
common_constant(bhvStarSpawnCoordinates);
common_constant(bhvHiddenRedCoinStar);
common_constant(bhvRedCoin);

View file

@ -417,6 +417,8 @@ static void DynOS_Tex_GeneratePack_Recursive(const SysPath &aPackFolder, SysPath
SysPath _RelativePath = fstring("%s%s", aRelativePath.c_str(), _PackEnt->d_name);
if (containsC && !is_level_number_png(_RelativePath)) {
// Don't forgot to free the texture data we've read.
Delete<TexData>(_TexData);
continue;
}
@ -433,6 +435,8 @@ static void DynOS_Tex_GeneratePack_Recursive(const SysPath &aPackFolder, SysPath
// if we aren't overriding a texture, only generate textures in the output directory
SysPath _OutputFolder = fstring("%s/", aOutputFolder.c_str());
if (_OverrideName == NULL && (!aAllowCustomTextures || strcmp(_DirPath.c_str(), _OutputFolder.c_str()))) {
// Don't forgot to free the texture data we've read.
Delete<TexData>(_TexData);
continue;
}
@ -444,6 +448,9 @@ static void DynOS_Tex_GeneratePack_Recursive(const SysPath &aPackFolder, SysPath
}
DynOS_Tex_WriteBinary(aGfxData, _OutputPath, _BaseName, _TexData, (_OverrideName != NULL));
// Don't forgot to free the texture data we've read.
Delete<TexData>(_TexData);
}
closedir(_PackDir);

View file

@ -48,7 +48,7 @@ static void ScanPacksFolder(SysPath _DynosPacksFolder) {
// If pack folder exists, add it to the pack list
SysPath _PackFolder = fstring("%s/%s", _DynosPacksFolder.c_str(), _DynosPacksEnt->d_name);
if (fs_sys_dir_exists(_PackFolder.c_str())) {
struct PackData* _Pack = DynOS_Pack_Add(_PackFolder);
DynOS_Pack_Add(_PackFolder);
DynOS_Actor_GeneratePack(_PackFolder);
DynOS_Tex_GeneratePack(_PackFolder, _PackFolder, false);
}

View file

@ -54,6 +54,7 @@ GfxData *DynOS_Bhv_GetActiveGfx(BehaviorScript *bhvScript) {
for (s32 i = 0; i < _CustomBehaviorScripts.Count(); ++i) {
auto &gfxData = _CustomBehaviorScripts[i].second;
auto &scripts = gfxData->mBehaviorScripts;
if (scripts.Count() == 0) { continue; }
if (bhvScript == scripts[scripts.Count() - 1]->mData) {
return gfxData;
}
@ -67,6 +68,7 @@ s32 DynOS_Bhv_GetActiveModIndex(BehaviorScript *bhvScript) {
for (s32 i = 0; i < _CustomBehaviorScripts.Count(); ++i) {
auto &gfxData = _CustomBehaviorScripts[i].second;
auto &scripts = gfxData->mBehaviorScripts;
if (scripts.Count() == 0) { continue; }
if (bhvScript == scripts[scripts.Count() - 1]->mData) {
return gfxData->mModIndex;
}
@ -96,7 +98,10 @@ void DynOS_Bhv_HookAllCustomBehaviors() {
for (s32 i = 0; i < _CustomBehaviorScripts.Count(); ++i) {
auto &scriptName = _CustomBehaviorScripts[i].first;
auto &aGfxData = _CustomBehaviorScripts[i].second;
auto &script = aGfxData->mBehaviorScripts[aGfxData->mBehaviorScripts.Count() - 1]->mData;
if (aGfxData->mBehaviorScripts.Count() == 0) { continue; }
auto *node = aGfxData->mBehaviorScripts[aGfxData->mBehaviorScripts.Count() - 1];
if (node == nullptr) { continue; }
auto &script = node->mData;
// Theres currently no better place but to do this here.
if (smlua_hook_custom_bhv(script, scriptName) == 0) {

View file

@ -1290,6 +1290,14 @@ static void *geo_rotate_3d_coin(s32 callContext, void *node, UNUSED void *c) {
return NULL;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //
// !! IMPORTANT: ADD NEW ENTRIES AT THE END OF THE sDynosBuiltinFuncs LIST TO PRESERVE INDEXING !! //
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //
// //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
static const void* sDynosBuiltinFuncs[] = {
define_builtin(geo_mirror_mario_set_alpha),
define_builtin(geo_switch_mario_stand_run),
@ -1911,6 +1919,12 @@ static const void* sDynosBuiltinFuncs[] = {
define_builtin(geo_intro_tm_copyright),
define_builtin(geo_intro_regular_backdrop),
define_builtin(geo_draw_mario_head_goddard),
// Custom
define_builtin(bhv_blue_coin_number_loop),
define_builtin(bhv_blue_coin_switch_init),
define_builtin(bhv_star_number_loop),
define_builtin(spawn_star_number),
};
const void* DynOS_Builtin_Func_GetFromName(const char* aDataName) {

View file

@ -68,6 +68,8 @@ extern ALIGNED8 const Texture flame_seg6_texture_06014000[];
extern ALIGNED8 const Texture flame_seg6_texture_06016000[];
extern ALIGNED8 const Texture flame_seg6_texture_06018000[];
extern ALIGNED8 const Texture flame_seg6_texture_0601A000[];
extern ALIGNED8 const Texture bowser_key_left_texture[];
extern ALIGNED8 const Texture bowser_key_right_texture[];
extern ALIGNED8 const Texture breakable_box_seg8_texture_08011A90[];
extern ALIGNED8 const Texture breakable_box_seg8_texture_08012290[];
extern ALIGNED8 const Texture bub_seg6_texture_0600E2A8[];
@ -1633,7 +1635,6 @@ extern ALIGNED8 const Texture toad_player_texture_eyes_half_closed[];
extern ALIGNED8 const Texture toad_player_texture_eyes_dead[];
extern ALIGNED8 const Texture toad_player_texture_hair[];
extern ALIGNED8 const Texture toad_player_texture_cap[];
extern ALIGNED8 const Texture waluigi_cap_seg3_texture_0301DF50[];
extern ALIGNED8 const Texture wario_texture_white_button[];
extern ALIGNED8 const Texture wario_texture_w_logo[];
extern ALIGNED8 const Texture wario_texture_hair_sideburn[];
@ -1647,10 +1648,21 @@ extern ALIGNED8 const Texture wario_texture_eyes_up[];
extern ALIGNED8 const Texture wario_texture_eyes_down[];
extern ALIGNED8 const Texture wario_texture_eyes_dead[];
extern ALIGNED8 const Texture wario_cap_seg3_texture_0301DF50[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_overalls_button_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_metal_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_cap_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes0_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_mouth_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes1_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes2_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_eyes3_rgba16[];
extern ALIGNED8 const Texture waluigi_waluigi_glove_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_eyes_center_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_mouth_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_sideburns_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_eyes_half_closed_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_eyes_closed_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_eyes_left_unused_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_eyes_right_unused_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_eyes_up_unused_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_eyes_down_unused_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_mouth_dead_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_eyes_dead_rgba16[];
extern ALIGNED8 const Texture waluigi_wing_2_rgba16[];
extern ALIGNED8 const Texture waluigi_wing_1_rgba16[];
extern ALIGNED8 const Texture waluigi_custom_waluigi_glove_rgba16[];

View file

@ -81,6 +81,8 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = {
define_builtin_tex(flame_seg6_texture_06016000, "actors/bowser_flame/bowser_flame_11.rgba16.png", 64, 64, 16),
define_builtin_tex(flame_seg6_texture_06018000, "actors/bowser_flame/bowser_flame_12.rgba16.png", 64, 64, 16),
define_builtin_tex(flame_seg6_texture_0601A000, "actors/bowser_flame/bowser_flame_13.rgba16.png", 64, 64, 16),
define_builtin_tex(bowser_key_left_texture, "actors/bowser_key/bowser_key_left.rgba16.png", 32, 64, 16),
define_builtin_tex(bowser_key_right_texture, "actors/bowser_key/bowser_key_right.rgba16.png", 32, 64, 16),
define_builtin_tex(breakable_box_seg8_texture_08011A90, "actors/breakable_box/crazy_box_surface.rgba16.png", 32, 32, 16),
define_builtin_tex(breakable_box_seg8_texture_08012290, "actors/breakable_box/cork_box_surface.rgba16.png", 32, 32, 16),
define_builtin_tex(bub_seg6_texture_0600E2A8, "actors/bub/bub_eye_border.rgba16.png", 32, 32, 16),
@ -1645,7 +1647,6 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = {
define_builtin_tex(toad_player_texture_eyes_dead, "actors/toad_player/custom_toad_eyes_dead.rgba16.png", 32, 32, 16),
define_builtin_tex(toad_player_texture_hair, "actors/toad_player/custom_toad_hair.rgba16.png", 32, 32, 16),
define_builtin_tex(toad_player_texture_cap, "actors/toad_player/custom_toad_cap.rgba16.png", 32, 32, 16),
define_builtin_tex(waluigi_cap_seg3_texture_0301DF50, "actors/waluigi/custom_waluigi_cap.rgba16.png", 32, 32, 16),
define_builtin_tex(wario_texture_white_button, "actors/wario/custom_wario_overalls_button.rgba16.png", 32, 32, 16),
define_builtin_tex(wario_texture_w_logo, "actors/wario/custom_wario_logo.rgba16.png", 32, 32, 16),
define_builtin_tex(wario_texture_hair_sideburn, "actors/wario/custom_wario_sideburn.rgba16.png", 32, 32, 16),
@ -1659,13 +1660,32 @@ static const struct BuiltinTexInfo sDynosBuiltinTexs[] = {
define_builtin_tex(wario_texture_eyes_down, "actors/wario/custom_wario_eyes_down_unused.rgba16.png", 64, 32, 16),
define_builtin_tex(wario_texture_eyes_dead, "actors/wario/custom_wario_eyes_dead.rgba16.png", 64, 32, 16),
define_builtin_tex(wario_cap_seg3_texture_0301DF50, "actors/wario_cap/custom_wario_cap_logo.rgba16.png", 32, 32, 16),
// Waluigi
define_builtin_tex(waluigi_custom_waluigi_overalls_button_rgba16, "actors/waluigi/custom_waluigi_overalls_button.rgba16.png", 32, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_metal_rgba16, "actors/waluigi/custom_waluigi_metal.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_cap_rgba16, "actors/waluigi/custom_waluigi_cap.rgba16.png", 32, 32, 16),
define_builtin_tex(waluigi_waluigi_eyes0_rgba16, "actors/waluigi/custom_waluigi_eyes0.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_waluigi_mouth_rgba16, "actors/waluigi/custom_waluigi_mouth.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_waluigi_eyes1_rgba16, "actors/waluigi/custom_waluigi_eyes1.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_waluigi_eyes2_rgba16, "actors/waluigi/custom_waluigi_eyes2.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_waluigi_eyes3_rgba16, "actors/waluigi/custom_waluigi_eyes3.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_waluigi_glove_rgba16, "actors/waluigi/custom_waluigi_glove.rgba16.png", 32, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_glove_rgba16, "actors/waluigi/custom_waluigi_glove.rgba16.png", 32, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_sideburns_rgba16, "actors/waluigi/custom_waluigi_sideburns.rgba16.png", 32, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_mouth_rgba16, "actors/waluigi/custom_waluigi_mouth.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_mouth_dead_rgba16, "actors/waluigi/custom_waluigi_mouth_dead.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_wing_1_rgba16, "actors/waluigi/wing_1.rgba16.png", 32, 64, 16),
define_builtin_tex(waluigi_wing_2_rgba16, "actors/waluigi/wing_2.rgba16.png", 32, 64, 16),
// Eyes
define_builtin_tex(waluigi_custom_waluigi_eyes_center_rgba16, "actors/waluigi/custom_waluigi_eyes_center.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_eyes_half_closed_rgba16, "actors/waluigi/custom_waluigi_eyes_half_closed.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_eyes_closed_rgba16, "actors/waluigi/custom_waluigi_eyes_closed.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_eyes_dead_rgba16, "actors/waluigi/custom_waluigi_eyes_dead.rgba16.png", 64, 32, 16),
// Unused
define_builtin_tex(waluigi_custom_waluigi_eyes_left_unused_rgba16, "actors/waluigi/custom_waluigi_eyes_left_unused.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_eyes_right_unused_rgba16, "actors/waluigi/custom_waluigi_eyes_right_unused.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_eyes_up_unused_rgba16, "actors/waluigi/custom_waluigi_eyes_up_unused.rgba16.png", 64, 32, 16),
define_builtin_tex(waluigi_custom_waluigi_eyes_down_unused_rgba16, "actors/waluigi/custom_waluigi_eyes_down_unused.rgba16.png", 64, 32, 16),
};
const Texture* DynOS_Builtin_Tex_GetFromName(const char* aDataName) {

View file

@ -138,7 +138,10 @@ PackData* DynOS_Pack_Add(const SysPath& aPath) {
s32 index = _DynosPacks.Count();
const PackData packData = {
.mIndex = index,
.mEnabled = false,
.mEnabledSet = false,
.mPath = aPath,
.mDisplayName = "",
.mGfxData = {},
.mTextures = {},
.mLoaded = false,

View file

@ -19,6 +19,7 @@
- [enum InteractionFlag](#enum-InteractionFlag)
- [interaction.h](#interactionh)
- [enum InteractionType](#enum-InteractionType)
- [level_commands.h](#level_commandsh)
- [level_defines.h](#level_definesh)
- [enum LevelNum](#enum-LevelNum)
- [level_update.h](#level_updateh)
@ -624,7 +625,9 @@
| id_bhvYoshi | 534 |
| id_RM_Scroll_Texture | 535 |
| id_editor_Scroll_Texture | 536 |
| id_bhv_max_count | 537 |
| id_bhvBlueCoinNumber | 537 |
| id_bhvStarNumber | 538 |
| id_bhv_max_count | 539 |
[:arrow_up_small:](#)
@ -1244,6 +1247,14 @@
<br />
## [level_commands.h](#level_commands.h)
- WARP_CHECKPOINT
- WARP_NO_CHECKPOINT
[:arrow_up_small:](#)
<br />
## [level_defines.h](#level_defines.h)
### [enum LevelNum](#LevelNum)
@ -1351,9 +1362,11 @@
| HUD_DISPLAY_FLAG_KEYS | 0x0010 |
| HUD_DISPLAY_FLAG_UNKNOWN_0020 | 0x0020 |
| HUD_DISPLAY_FLAG_TIMER | 0x0040 |
| HUD_DISPLAY_FLAG_CAMERA | 0x0080 |
| HUD_DISPLAY_FLAG_POWER | 0x0100 |
| HUD_DISPLAY_FLAG_EMPHASIZE_POWER | 0x8000 |
| HUD_DISPLAY_NONE | 0x0000 |
| HUD_DISPLAY_DEFAULT | HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020 |
| HUD_DISPLAY_DEFAULT | HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_CAMERA | HUD_DISPLAY_FLAG_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020 |
[:arrow_up_small:](#)
@ -1697,6 +1710,7 @@
- ACTIVE_FLAG_ACTIVE
- ACTIVE_FLAG_DEACTIVATED
- ACTIVE_FLAG_DITHERED_ALPHA
- ACTIVE_FLAG_DORMANT
- ACTIVE_FLAG_FAR_AWAY
- ACTIVE_FLAG_INITIATED_TIME_STOP
- ACTIVE_FLAG_IN_DIFFERENT_ROOM
@ -1761,6 +1775,7 @@
- BIRD_BP_SPAWNER
- BLUE_COIN_SWITCH_ACT_IDLE
- BLUE_COIN_SWITCH_ACT_RECEDING
- BLUE_COIN_SWITCH_ACT_RESPAWNING
- BLUE_COIN_SWITCH_ACT_TICKING
- BLUE_FISH_ACT_ASCEND
- BLUE_FISH_ACT_DIVE
@ -2902,6 +2917,8 @@
| HUD_DISPLAY_FLAGS_KEYS | 0x0010 |
| HUD_DISPLAY_FLAGS_UNKNOWN_0020 | 0x0020 |
| HUD_DISPLAY_FLAGS_TIMER | 0x0040 |
| HUD_DISPLAY_FLAGS_CAMERA | 0x0080 |
| HUD_DISPLAY_FLAGS_POWER | 0x0100 |
| HUD_DISPLAY_FLAGS_EMPHASIZE_POWER | 0x8000 |
### [enum HudDisplayValue](#HudDisplayValue)

View file

@ -988,6 +988,24 @@
<br />
## [bhv_blue_coin_number_loop](#bhv_blue_coin_number_loop)
### Lua Example
`bhv_blue_coin_number_loop()`
### Parameters
- None
### Returns
- None
### C Prototype
`void bhv_blue_coin_number_loop(void);`
[:arrow_up_small:](#)
<br />
## [bhv_blue_coin_sliding_jumping_init](#bhv_blue_coin_sliding_jumping_init)
### Lua Example
@ -1024,6 +1042,24 @@
<br />
## [bhv_blue_coin_switch_init](#bhv_blue_coin_switch_init)
### Lua Example
`bhv_blue_coin_switch_init()`
### Parameters
- None
### Returns
- None
### C Prototype
`void bhv_blue_coin_switch_init(void);`
[:arrow_up_small:](#)
<br />
## [bhv_blue_coin_switch_loop](#bhv_blue_coin_switch_loop)
### Lua Example
@ -7760,6 +7796,24 @@
<br />
## [bhv_star_number_loop](#bhv_star_number_loop)
### Lua Example
`bhv_star_number_loop()`
### Parameters
- None
### Returns
- None
### C Prototype
`void bhv_star_number_loop(void);`
[:arrow_up_small:](#)
<br />
## [bhv_star_spawn_init](#bhv_star_spawn_init)
### Lua Example
@ -10097,6 +10151,24 @@
<br />
## [spawn_star_number](#spawn_star_number)
### Lua Example
`spawn_star_number()`
### Parameters
- None
### Returns
- None
### C Prototype
`void spawn_star_number(void);`
[:arrow_up_small:](#)
<br />
## [spawn_triangle_break_particles](#spawn_triangle_break_particles)
### Lua Example

View file

@ -3358,6 +3358,37 @@
<br />
---
# functions from level_script.h
<br />
## [area_create_warp_node](#area_create_warp_node)
### Lua Example
`local ObjectWarpNodeValue = area_create_warp_node(id, destLevel, destArea, destNode, checkpoint, o)`
### Parameters
| Field | Type |
| ----- | ---- |
| id | `integer` |
| destLevel | `integer` |
| destArea | `integer` |
| destNode | `integer` |
| checkpoint | `integer` |
| o | [Object](structs.md#Object) |
### Returns
[ObjectWarpNode](structs.md#ObjectWarpNode)
### C Prototype
`struct ObjectWarpNode *area_create_warp_node(u8 id, u8 destLevel, u8 destArea, u8 destNode, u8 checkpoint, struct Object *o);`
[:arrow_up_small:](#)
<br />
---
# functions from level_update.h

View file

@ -8066,6 +8066,24 @@
<br />
## [camera_is_frozen](#camera_is_frozen)
### Lua Example
`local booleanValue = camera_is_frozen()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_is_frozen(void);`
[:arrow_up_small:](#)
<br />
## [camera_unfreeze](#camera_unfreeze)
### Lua Example
@ -8084,6 +8102,26 @@
<br />
## [course_is_main_course](#course_is_main_course)
### Lua Example
`local booleanValue = course_is_main_course(levelNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| levelNum | `integer` |
### Returns
- `boolean`
### C Prototype
`bool course_is_main_course(u16 levelNum);`
[:arrow_up_small:](#)
<br />
## [deref_s32_pointer](#deref_s32_pointer)
### Lua Example
@ -8335,6 +8373,24 @@
<br />
## [hud_is_hidden](#hud_is_hidden)
### Lua Example
`local booleanValue = hud_is_hidden()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool hud_is_hidden(void);`
[:arrow_up_small:](#)
<br />
## [hud_render_power_meter](#hud_render_power_meter)
### Lua Example

View file

@ -20,6 +20,12 @@
<br />
- area.h
- [area_get_warp_node](functions.md#area_get_warp_node)
- [area_get_warp_node_from_params](functions.md#area_get_warp_node_from_params)
<br />
- behavior_actions.h
- [arc_to_goal_pos](functions-2.md#arc_to_goal_pos)
- [bhv_1up_common_init](functions-2.md#bhv_1up_common_init)
@ -75,8 +81,10 @@
- [bhv_blue_bowser_flame_init](functions-2.md#bhv_blue_bowser_flame_init)
- [bhv_blue_bowser_flame_loop](functions-2.md#bhv_blue_bowser_flame_loop)
- [bhv_blue_coin_jumping_loop](functions-2.md#bhv_blue_coin_jumping_loop)
- [bhv_blue_coin_number_loop](functions-2.md#bhv_blue_coin_number_loop)
- [bhv_blue_coin_sliding_jumping_init](functions-2.md#bhv_blue_coin_sliding_jumping_init)
- [bhv_blue_coin_sliding_loop](functions-2.md#bhv_blue_coin_sliding_loop)
- [bhv_blue_coin_switch_init](functions-2.md#bhv_blue_coin_switch_init)
- [bhv_blue_coin_switch_loop](functions-2.md#bhv_blue_coin_switch_loop)
- [bhv_blue_fish_movement_loop](functions-2.md#bhv_blue_fish_movement_loop)
- [bhv_blue_flames_group_loop](functions-2.md#bhv_blue_flames_group_loop)
@ -451,6 +459,7 @@
- [bhv_star_door_loop](functions-2.md#bhv_star_door_loop)
- [bhv_star_door_loop_2](functions-2.md#bhv_star_door_loop_2)
- [bhv_star_key_collection_puff_spawner_loop](functions-2.md#bhv_star_key_collection_puff_spawner_loop)
- [bhv_star_number_loop](functions-2.md#bhv_star_number_loop)
- [bhv_star_spawn_init](functions-2.md#bhv_star_spawn_init)
- [bhv_star_spawn_loop](functions-2.md#bhv_star_spawn_loop)
- [bhv_static_checkered_platform_loop](functions-2.md#bhv_static_checkered_platform_loop)
@ -579,6 +588,7 @@
- [spawn_mist_particles_variable](functions-2.md#spawn_mist_particles_variable)
- [spawn_no_exit_star](functions-2.md#spawn_no_exit_star)
- [spawn_red_coin_cutscene_star](functions-2.md#spawn_red_coin_cutscene_star)
- [spawn_star_number](functions-2.md#spawn_star_number)
- [spawn_triangle_break_particles](functions-2.md#spawn_triangle_break_particles)
- [spawn_wind_particles](functions-2.md#spawn_wind_particles)
- [tox_box_move](functions-2.md#tox_box_move)
@ -788,6 +798,11 @@
<br />
- level_script.h
- [area_create_warp_node](functions-3.md#area_create_warp_node)
<br />
- level_update.h
- [level_trigger_warp](functions-3.md#level_trigger_warp)
@ -1515,7 +1530,9 @@
- [camera_config_set_x_sensitivity](functions-4.md#camera_config_set_x_sensitivity)
- [camera_config_set_y_sensitivity](functions-4.md#camera_config_set_y_sensitivity)
- [camera_freeze](functions-4.md#camera_freeze)
- [camera_is_frozen](functions-4.md#camera_is_frozen)
- [camera_unfreeze](functions-4.md#camera_unfreeze)
- [course_is_main_course](functions-4.md#course_is_main_course)
- [deref_s32_pointer](functions-4.md#deref_s32_pointer)
- [get_current_save_file_num](functions-4.md#get_current_save_file_num)
- [get_dialog_box_state](functions-4.md#get_dialog_box_state)
@ -1529,6 +1546,7 @@
- [get_temp_s32_pointer](functions-4.md#get_temp_s32_pointer)
- [hud_get_value](functions-4.md#hud_get_value)
- [hud_hide](functions-4.md#hud_hide)
- [hud_is_hidden](functions-4.md#hud_is_hidden)
- [hud_render_power_meter](functions-4.md#hud_render_power_meter)
- [hud_set_value](functions-4.md#hud_set_value)
- [hud_show](functions-4.md#hud_show)
@ -1842,6 +1860,52 @@ Retrieves a texture by name.
<br />
---
# functions from area.h
<br />
## [area_get_warp_node](#area_get_warp_node)
### Lua Example
`local ObjectWarpNodeValue = area_get_warp_node(id)`
### Parameters
| Field | Type |
| ----- | ---- |
| id | `integer` |
### Returns
[ObjectWarpNode](structs.md#ObjectWarpNode)
### C Prototype
`struct ObjectWarpNode *area_get_warp_node(u8 id);`
[:arrow_up_small:](#)
<br />
## [area_get_warp_node_from_params](#area_get_warp_node_from_params)
### Lua Example
`local ObjectWarpNodeValue = area_get_warp_node_from_params(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
[ObjectWarpNode](structs.md#ObjectWarpNode)
### C Prototype
`struct ObjectWarpNode *area_get_warp_node_from_params(struct Object *o);`
[:arrow_up_small:](#)
<br />
---
1 | [2](functions-2.md) | [3](functions-3.md) | [4](functions-4.md) | [5](functions-5.md) | [next >](functions-2.md)]

View file

@ -46,6 +46,9 @@
- [ObjectNode](#ObjectNode)
- [ObjectWarpNode](#ObjectWarpNode)
- [OffsetSizePair](#OffsetSizePair)
- [Painting](#Painting)
- [PaintingMeshVertex](#PaintingMeshVertex)
- [PaintingValues](#PaintingValues)
- [ParallelTrackingPoint](#ParallelTrackingPoint)
- [PlayerCameraState](#PlayerCameraState)
- [PlayerGeometry](#PlayerGeometry)
@ -771,10 +774,12 @@
| Field | Type | Access |
| ----- | ---- | ------ |
| apostrophe | [TextureInfo](structs.md#TextureInfo) | read-only |
| arrow_down | [TextureInfo](structs.md#TextureInfo) | read-only |
| arrow_up | [TextureInfo](structs.md#TextureInfo) | read-only |
| camera | [TextureInfo](structs.md#TextureInfo) | read-only |
| coin | [TextureInfo](structs.md#TextureInfo) | read-only |
| double_quote | [TextureInfo](structs.md#TextureInfo) | read-only |
| lakitu | [TextureInfo](structs.md#TextureInfo) | read-only |
| luigi_head | [TextureInfo](structs.md#TextureInfo) | read-only |
| mario_head | [TextureInfo](structs.md#TextureInfo) | read-only |
@ -813,6 +818,7 @@
| animInfo | [AnimInfo](structs.md#AnimInfo) | read-only |
| areaIndex | `integer` | |
| cameraToObject | [Vec3f](structs.md#Vec3f) | read-only |
| disableAutomaticShadowPos | `boolean` | |
| node | [GraphNode](structs.md#GraphNode) | read-only |
| pos | [Vec3f](structs.md#Vec3f) | read-only |
| prevAngle | [Vec3s](structs.md#Vec3s) | read-only |
@ -825,6 +831,8 @@
| prevThrowMatrixTimestamp | `integer` | |
| prevTimestamp | `integer` | |
| scale | [Vec3f](structs.md#Vec3f) | read-only |
| shadowInvisible | `boolean` | |
| shadowPos | [Vec3f](structs.md#Vec3f) | read-only |
| sharedChild | [GraphNode](structs.md#GraphNode) | |
| skipInViewCheck | `boolean` | |
| skipInterpolationTimestamp | `integer` | |
@ -930,24 +938,36 @@
| exitCastleArea | `integer` | |
| exitCastleLevel | [enum LevelNum](constants.md#enum-LevelNum) | |
| exitCastleWarpNode | `integer` | |
| extendedPauseDisplay | `integer` | |
| fixCollisionBugs | `integer` | |
| fixVanishFloors | `boolean` | |
| fixVanishFloors | `integer` | |
| floatingStarDance | `integer` | |
| floorLowerLimit | `integer` | |
| floorLowerLimitMisc | `integer` | |
| floorLowerLimitShadow | `integer` | |
| hudCapTimer | `integer` | |
| hudRedCoinsRadar | `integer` | |
| hudSecretsRadar | `integer` | |
| metalCapDuration | `integer` | |
| metalCapDurationCotmc | `integer` | |
| pauseExitAnywhere | `boolean` | |
| metalCapSequence | `integer` | |
| mushroom1UpHeal | `integer` | |
| pauseExitAnywhere | `boolean` | |
| previewBlueCoins | `integer` | |
| pssSlideStarIndex | `integer` | |
| pssSlideStarTime | `integer` | |
| respawnBlueCoinsSwitch | `integer` | |
| showStarNumber | `integer` | |
| skipCreditsAt | [enum LevelNum](constants.md#enum-LevelNum) | |
| starHeal | `integer` | |
| starPositions | [StarPositions](structs.md#StarPositions) | read-only |
| vanishCapDuration | `integer` | |
| vanishCapDurationVcutm | `integer` | |
| vanishCapSequence | `integer` | |
| visibleSecrets | `integer` | |
| wingCapDuration | `integer` | |
| wingCapDurationTotwc | `integer` | |
| wingCapLookUpReq | `integer` | |
| wingCapSequence | `integer` | |
[:arrow_up_small:](#)
@ -1077,7 +1097,6 @@
| unkC4 | `number` | |
| usedObj | [Object](structs.md#Object) | |
| vel | [Vec3f](structs.md#Vec3f) | read-only |
| visibleToEnemies | `integer` | |
| wall | [Surface](structs.md#Surface) | |
| wallKickTimer | `integer` | |
| wallNormal | [Vec3f](structs.md#Vec3f) | read-only |
@ -1998,6 +2017,84 @@
<br />
## [Painting](#Painting)
| Field | Type | Access |
| ----- | ---- | ------ |
| alpha | `integer` | |
| currFloor | `integer` | |
| currRippleMag | `number` | |
| currRippleRate | `number` | |
| dispersionFactor | `number` | |
| entryDispersionFactor | `number` | |
| entryRippleDecay | `number` | |
| entryRippleMag | `number` | |
| entryRippleRate | `number` | |
| floorEntered | `integer` | |
| id | `integer` | read-only |
| imageCount | `integer` | read-only |
| lastFloor | `integer` | |
| marioIsUnder | `integer` | |
| marioWasUnder | `integer` | |
| marioWentUnder | `integer` | |
| passiveDispersionFactor | `number` | |
| passiveRippleDecay | `number` | |
| passiveRippleMag | `number` | |
| passiveRippleRate | `number` | |
| pitch | `number` | |
| posX | `number` | |
| posY | `number` | |
| posZ | `number` | |
| rippleDecay | `number` | |
| rippleTimer | `number` | |
| rippleTrigger | `integer` | |
| rippleX | `number` | |
| rippleY | `number` | |
| size | `number` | |
| state | `integer` | |
| textureHeight | `integer` | read-only |
| textureType | `integer` | read-only |
| textureWidth | `integer` | read-only |
| yaw | `number` | |
[:arrow_up_small:](#)
<br />
## [PaintingMeshVertex](#PaintingMeshVertex)
| Field | Type | Access |
| ----- | ---- | ------ |
[:arrow_up_small:](#)
<br />
## [PaintingValues](#PaintingValues)
| Field | Type | Access |
| ----- | ---- | ------ |
| bob_painting | [Painting](structs.md#Painting) | |
| ccm_painting | [Painting](structs.md#Painting) | |
| cotmc_painting | [Painting](structs.md#Painting) | |
| ddd_painting | [Painting](structs.md#Painting) | |
| hmc_painting | [Painting](structs.md#Painting) | |
| jrb_painting | [Painting](structs.md#Painting) | |
| lll_painting | [Painting](structs.md#Painting) | |
| sl_painting | [Painting](structs.md#Painting) | |
| ssl_painting | [Painting](structs.md#Painting) | |
| thi_huge_painting | [Painting](structs.md#Painting) | |
| thi_tiny_painting | [Painting](structs.md#Painting) | |
| ttc_painting | [Painting](structs.md#Painting) | |
| ttm_painting | [Painting](structs.md#Painting) | |
| ttm_slide_painting | [Painting](structs.md#Painting) | |
| wdw_painting | [Painting](structs.md#Painting) | |
| wf_painting | [Painting](structs.md#Painting) | |
[:arrow_up_small:](#)
<br />
## [ParallelTrackingPoint](#ParallelTrackingPoint)
| Field | Type | Access |

View file

@ -238,6 +238,7 @@ extern const BehaviorScript bhvWhitePuff1[];
extern const BehaviorScript bhvWhitePuff2[];
extern const BehaviorScript bhvWhitePuffSmoke2[];
extern const BehaviorScript bhvPurpleSwitchHiddenBoxes[];
extern const BehaviorScript bhvBlueCoinNumber[];
extern const BehaviorScript bhvBlueCoinSwitch[];
extern const BehaviorScript bhvHiddenBlueCoin[];
extern const BehaviorScript bhvOpenableCageDoor[];
@ -407,6 +408,7 @@ extern const BehaviorScript bhvMetalCap[];
extern const BehaviorScript bhvNormalCap[];
extern const BehaviorScript bhvVanishCap[];
extern const BehaviorScript bhvStar[];
extern const BehaviorScript bhvStarNumber[];
extern const BehaviorScript bhvStarSpawnCoordinates[];
extern const BehaviorScript bhvHiddenRedCoinStar[];
extern const BehaviorScript bhvRedCoin[];

View file

@ -541,6 +541,8 @@ enum BehaviorId {
id_bhvYoshi,
id_RM_Scroll_Texture,
id_editor_Scroll_Texture,
id_bhvBlueCoinNumber,
id_bhvStarNumber,
id_bhv_max_count // must be the last in the list
};

View file

@ -17,6 +17,7 @@
#define ACTIVE_FLAG_UNK8 (1 << 8) // 0x0100
#define ACTIVE_FLAG_UNK9 (1 << 9) // 0x0200
#define ACTIVE_FLAG_UNK10 (1 << 10) // 0x0400
#define ACTIVE_FLAG_DORMANT (1 << 11) // 0x0800
/* respawnInfoType */
@ -156,6 +157,7 @@
#define BLUE_COIN_SWITCH_ACT_IDLE 0
#define BLUE_COIN_SWITCH_ACT_RECEDING 1
#define BLUE_COIN_SWITCH_ACT_TICKING 2
#define BLUE_COIN_SWITCH_ACT_RESPAWNING 3
/* Moving Blue Coin */
/* oAction */

View file

@ -914,6 +914,7 @@
#define /*0x0F4*/ oStarSpawnDisFromHome OBJECT_FIELD_F32(0x1B)
#define /*0x0F8*/ oStarSpawnUnkFC OBJECT_FIELD_F32(0x1D)
#define /*0x0FC*/ oStarSpawnExtCutsceneFlags OBJECT_FIELD_S16(0x1E, 0)
#define /*0x100*/ oStarBehavior OBJECT_FIELD_CVPTR(0x1F)
/* Hidden Star */
// Secrets/Red Coins

View file

@ -145,8 +145,11 @@ struct GraphNodeObject
Vec3s prevAngle;
Vec3f prevPos;
u32 prevTimestamp;
Vec3f shadowPos;
Vec3f prevShadowPos;
u32 prevShadowPosTimestamp;
bool shadowInvisible;
bool disableAutomaticShadowPos;
/*0x2C*/ Vec3f scale;
Vec3f prevScale;
u32 prevScaleTimestamp;

View file

@ -1,19 +1,26 @@
-- name: Nametags
-- incompatible: nametags
-- description: Nametags\nBy \\#ec7731\\Agent X\\#ffffff\\\n\nThis mod adds nametags to sm64ex-coop, this helps to easily identify other players without the player list, nametags can toggled with \\#ffff00\\/nametags [on|off]\\#ffffff\\
-- description: Nametags\nBy \\#ec7731\\Agent X\\#dcdcdc\\\n\nThis mod adds nametags to sm64ex-coop, this helps to easily identify other players without the player list, nametags can toggled on and off with \\#ffff00\\/nametag-distance 7000\\#dcdcdc\\ and \\#ffff00\\/nametag-distance 0\\#dcdcdc\\ respectively.
MAX_SCALE = 0.32
gGlobalSyncTable.nametags = true
gGlobalSyncTable.dist = 7000
gGlobalSyncTable.health = true
showSelfTag = false
for k, v in pairs(gActiveMods) do
local name = v.name:lower()
if v.enabled and (name:find("hide") or name:find("hns") or name:find("hunt")) then
gGlobalSyncTable.nametags = false
gGlobalSyncTable.dist = 0
end
end
function on_or_off(value)
if value then return "\\#00ff00\\ON" end
return "\\#ff0000\\OFF"
end
function clamp(x, a, b)
if x < a then return a end
if x > b then return b end
@ -55,9 +62,9 @@ function djui_hud_set_adjusted_color(r, g, b, a)
djui_hud_set_color(r * multiplier, g * multiplier, b * multiplier, a)
end
function djui_hud_print_outlined_text(text, x, y, scale, r, g, b, outlineDarkness)
function djui_hud_print_outlined_text(text, x, y, scale, r, g, b, a, outlineDarkness)
-- render outline
djui_hud_set_adjusted_color(r * outlineDarkness, g * outlineDarkness, b * outlineDarkness, 255)
djui_hud_set_adjusted_color(r * outlineDarkness, g * outlineDarkness, b * outlineDarkness, a)
djui_hud_print_text(text, x - (1*(scale*2)), y, scale)
djui_hud_print_text(text, x + (1*(scale*2)), y, scale)
djui_hud_print_text(text, x, y - (1*(scale*2)), scale)
@ -68,51 +75,31 @@ function djui_hud_print_outlined_text(text, x, y, scale, r, g, b, outlineDarknes
djui_hud_set_color(255, 255, 255, 255)
end
function name_and_hex(name)
local nameTable = {}
name:gsub(".", function(c) table.insert(nameTable, c) end)
local removed = false
local color = "000000"
for k, v in pairs(nameTable) do
if v == "\\" and not removed then
removed = true
nameTable[k] = "" -- \
nameTable[k + 1] = "" -- #
if nameTable[k + 2] ~= nil and nameTable[k + 3] ~= nil and nameTable[k + 4] ~= nil and nameTable[k + 5] ~= nil and nameTable[k + 6] ~= nil and nameTable[k + 7] ~= nil then
color = nameTable[k + 2] .. nameTable[k + 3] .. nameTable[k + 4] .. nameTable[k + 5] .. nameTable[k + 6] .. nameTable[k + 7]
end
nameTable[k + 2] = "" -- f
nameTable[k + 3] = "" -- f
nameTable[k + 4] = "" -- f
nameTable[k + 5] = "" -- f
nameTable[k + 6] = "" -- f
nameTable[k + 7] = "" -- f
nameTable[k + 8] = "" -- \
function name_without_hex(name)
local s = ''
local inSlash = false
for i = 1, #name do
local c = name:sub(i,i)
if c == '\\' then
inSlash = not inSlash
elseif not inSlash then
s = s .. c
end
end
return { name = table.concat(nameTable, ""), color = color }
return s
end
function hex_to_rgb(hex)
local hexTable = {}
hex:gsub("..", function(c) table.insert(hexTable, c) end)
return { r = tonumber(hexTable[1], 16), g = tonumber(hexTable[2], 16), b = tonumber(hexTable[3], 16) }
end
showSelfTag = false
function on_hud_render()
if not gGlobalSyncTable.nametags or not gNetworkPlayers[0].currAreaSyncValid or obj_get_first_with_behavior_id(id_bhvActSelector) ~= nil then return end
if gGlobalSyncTable.dist == 0 or not gNetworkPlayers[0].currAreaSyncValid or obj_get_first_with_behavior_id(id_bhvActSelector) ~= nil then return end
djui_hud_set_resolution(RESOLUTION_N64)
djui_hud_set_font(FONT_NORMAL)
for i = if_then_else(showSelfTag, 0, 1), network_player_connected_count() - 1 do
for i = if_then_else(showSelfTag, 0, 1), (MAX_PLAYERS - 1) do
local m = gMarioStates[i]
if active_player(m) ~= 0 then
if m.playerIndex == 0 and (m.input & INPUT_FIRST_PERSON) ~= 0 then return end
if active_player(m) ~= 0 and m.action ~= ACT_IN_CANNON and (m.playerIndex ~= 0 or (m.playerIndex == 0 and m.action ~= ACT_FIRST_PERSON)) then
local out = { x = 0, y = 0, z = 0 }
local pos = { x = m.marioObj.header.gfx.pos.x, y = m.marioBodyState.headPos.y + 120, z = m.marioObj.header.gfx.pos.z }
local pos = { x = m.marioObj.header.gfx.pos.x, y = m.pos.y + 210, z = m.marioObj.header.gfx.pos.z }
djui_hud_world_pos_to_screen_pos(pos, out)
local scale = MAX_SCALE
@ -121,52 +108,49 @@ function on_hud_render()
scale = scale + vec3f_dist(gMarioStates[0].pos, m.pos) / gGlobalSyncTable.dist
scale = clamp(1 - scale, 0, MAX_SCALE)
end
local info = name_and_hex(gNetworkPlayers[i].name)
local name = name_without_hex(gNetworkPlayers[i].name)
local color = { r = 162, g = 202, b = 234 }
network_player_palette_to_color(gNetworkPlayers[i], SHIRT, color)
local measure = djui_hud_measure_text(info.name) * scale * 0.5
djui_hud_print_outlined_text(info.name, out.x - measure, out.y, scale, color.r, color.g, color.b, 0.25)
local measure = djui_hud_measure_text(name) * scale * 0.5
local alpha = if_then_else(m.action ~= ACT_CROUCHING and m.action ~= ACT_START_CRAWLING and m.action ~= ACT_CRAWLING and m.action ~= ACT_STOP_CRAWLING, 255, 100)
djui_hud_print_outlined_text(name, out.x - measure, out.y, scale, color.r, color.g, color.b, alpha, 0.25)
if m.playerIndex ~= 0 and gGlobalSyncTable.health then
djui_hud_set_adjusted_color(255, 255, 255, alpha)
local healthScale = 75 * scale
hud_render_power_meter(m.health, out.x - (healthScale * 0.5), out.y - healthScale, healthScale, healthScale)
end
end
end
end
function on_nametags_command(msg)
if msg == "on" then
gGlobalSyncTable.nametags = true
djui_chat_message_create("Nametag status: \\#00ff00\\ON")
else
gGlobalSyncTable.nametags = false
djui_chat_message_create("Nametag status: \\#ff0000\\OFF")
end
return true
end
function on_nametag_distance_command(msg)
if tonumber(msg) ~= nil then
djui_chat_message_create("Set distance to " .. msg)
gGlobalSyncTable.dist = tonumber(msg)
else
djui_chat_message_create("\\#ff0000\\Failed to set distance to " .. msg)
local dist = tonumber(msg)
if dist ~= nil then
djui_chat_message_create("Set nametag distance to " .. msg)
gGlobalSyncTable.dist = dist
return true
end
return false
end
function on_show_health_command()
gGlobalSyncTable.health = not gGlobalSyncTable.health
djui_chat_message_create("Show health status: " .. on_or_off(gGlobalSyncTable.health))
return true
end
function on_show_my_tag_command(msg)
if msg == "on" then
showSelfTag = true
djui_chat_message_create("Show my tag status: \\#00ff00\\ON")
else
showSelfTag = false
djui_chat_message_create("Show my tag status: \\#ff0000\\OFF")
end
function on_show_tag_command()
showSelfTag = not showSelfTag
djui_chat_message_create("Show my tag status: " .. on_or_off(showSelfTag))
return true
end
hook_event(HOOK_ON_HUD_RENDER, on_hud_render)
if network_is_server() then
hook_chat_command("nametags", "[on|off] to turn nametags on or off, default is \\#00ff00\\ON", on_nametags_command)
hook_chat_command("nametag-distance", "[number] set the distance at which nametags disappear, default is 7000", on_nametag_distance_command)
hook_chat_command("nametag-distance", "[number] set the distance at which nametags disappear, default is 7000, 0 turns nametags off", on_nametag_distance_command)
hook_chat_command("show-health", "to toggle showing health above the nametag, default is \\#00ff00\\ON", on_show_health_command)
end
hook_chat_command("show-my-tag", "[on|off] to turn your own nametag on or off, default is \\#ff0000\\OFF", on_show_my_tag_command)
hook_chat_command("show-tag", "to toggle your own nametag on or off, default is \\#ff0000\\OFF", on_show_tag_command)

View file

@ -1,7 +1,7 @@
-- name: Personal Star Counter EX+
-- description: See how many stars you collect!\nIdea by Mr.Needlemouse, created by Sunk\n\nModified by Demnyx.
if mod_storage_load("StarCounter") == nil then
mod_storage_save("StarCounter", "0")
mod_storage_save("StarCounter", "0")
end
local TotalStarCounter = tonumber(mod_storage_load("StarCounter"))
@ -22,8 +22,8 @@ function localStarCounter(m, o, type)
--The hook happens after the star count increments, so this allows the independent counter to increment ONLY when YELLOW star is collected.
if m.numStars ~= prevNumStars then
StarCounter = StarCounter + 1
TotalStarCounter = TotalStarCounter + 1
mod_storage_save("StarCounter", tostring(TotalStarCounter))
TotalStarCounter = TotalStarCounter + 1
mod_storage_save("StarCounter", tostring(TotalStarCounter))
end
end
end
@ -37,114 +37,114 @@ function djui_hud_set_adjusted_color(r, g, b, a)
end
function displayStarCounter()
local m = gMarioStates[0]
if psToggle ~= 1 then return end
if obj_get_first_with_behavior_id(id_bhvActSelector) ~= nil
or (m.action == ACT_END_PEACH_CUTSCENE
or m.action == ACT_CREDITS_CUTSCENE
or m.action == ACT_END_WAVING_CUTSCENE) then return end
local m = gMarioStates[0]
if psToggle ~= 1 then return end
if obj_get_first_with_behavior_id(id_bhvActSelector) ~= nil
or (m.action == ACT_END_PEACH_CUTSCENE
or m.action == ACT_CREDITS_CUTSCENE
or m.action == ACT_END_WAVING_CUTSCENE) then return end
djui_hud_set_resolution(RESOLUTION_N64)
djui_hud_set_font(FONT_HUD)
djui_hud_set_resolution(RESOLUTION_N64)
djui_hud_set_font(FONT_HUD)
--I don't want to put this in a seperate function, there's not enough code for it to be worth it.
if m.playerIndex == 0 then
prevNumStars = m.numStars
prevNumStars = m.numStars
else
return
return
end
screenHeight = djui_hud_get_screen_height()
screenWidth = djui_hud_get_screen_width()
if a == nil then
a = 255
if a == nil then
a = 255
end
if obj_get_first_with_behavior_id(id_bhvActSelector) ~= nil then
if a <= 255 and a > 32 then
a = a - 40
else
a = 0
end
else
if a >= 0 and a < 215 then
a = a + 16
else
a = 255
end
end
local timerValFrames = hud_get_value(HUD_DISPLAY_TIMER)
local timerX = 0
local timerY = 0
-- Move HUD graphics away from the TIMER HUD
if timerValFrames ~= 0 then
timerX = 60
timerY = 17
end
--Normal personal star counter
if StarCounter >= 100 then
djui_hud_set_adjusted_color(255, 255, 255, a)
djui_hud_print_text(tostring(StarCounter), screenWidth - 61 - timerX, screenHeight - 208 - timerY, 1)
djui_hud_set_adjusted_color(232, 17, 35, a)
djui_hud_render_texture(gTextures.star, screenWidth - 77 - timerX, screenHeight - 208 - timerY, 1, 1)
else
djui_hud_set_adjusted_color(246, 246, 246, a)
djui_hud_print_text(tostring("X"), screenWidth - 61 - timerX, screenHeight - 208 - timerY, 1)
djui_hud_set_adjusted_color(255, 255, 255, a)
djui_hud_print_text(tostring(StarCounter), screenWidth - 46.8 - timerX, screenHeight - 208 - timerY, 1)
djui_hud_set_adjusted_color(232, 17, 35, a)
djui_hud_render_texture(gTextures.star, screenWidth - 77 - timerX, screenHeight - 208 - timerY, 1, 1)
end
if obj_get_first_with_behavior_id(id_bhvActSelector) ~= nil then
if a <= 255 and a > 32 then
a = a - 40
else
a = 0
end
else
if a >= 0 and a < 215 then
a = a + 16
else
a = 255
end
end
--Total star counter
if timerValFrames ~= 0 then
timerX = 0
timerY = -10
end
local timerValFrames = hud_get_value(HUD_DISPLAY_TIMER)
local timerX = 0
local timerY = 0
local perceived_total_counter = TotalStarCounter
local milestone_counter = 0
while perceived_total_counter >= 10000 do
perceived_total_counter = perceived_total_counter - 10000
milestone_counter = milestone_counter + 1
end
-- Move HUD graphics away from the TIMER HUD
if timerValFrames ~= 0 then
timerX = 60
timerY = 17
if perceived_total_counter >= 100 then
djui_hud_set_adjusted_color(255, 255, 255, a)
djui_hud_print_text(tostring(perceived_total_counter), screenWidth - 61 - timerX, screenHeight - 190 - timerY, 1)
djui_hud_set_adjusted_color(50, 176, 40, a)
djui_hud_render_texture(gTextures.star, screenWidth - 77 - timerX, screenHeight - 190 - timerY, 1, 1)
if milestone_counter ~= 0 then
djui_hud_set_adjusted_color(255, 255, 255, a)
djui_hud_print_text(string.format("x%d", milestone_counter), screenWidth - 77 - timerX, screenHeight - 174 - timerY, 0.5)
end
else
djui_hud_set_adjusted_color(246, 246, 246, a)
djui_hud_print_text(tostring("X"), screenWidth - 61 - timerX, screenHeight - 190 - timerY, 1)
djui_hud_set_adjusted_color(255, 255, 255, a)
djui_hud_print_text(tostring(perceived_total_counter), screenWidth - 46.8 - timerX, screenHeight - 190 - timerY, 1)
djui_hud_set_adjusted_color(50, 176, 40, a)
djui_hud_render_texture(gTextures.star, screenWidth - 77 - timerX, screenHeight - 190 - timerY, 1, 1)
if milestone_counter ~= 0 then
djui_hud_set_adjusted_color(255, 255, 255, a)
djui_hud_print_text(string.format("x%d", milestone_counter), screenWidth - 77 - timerX, screenHeight - 174 - timerY, 0.5)
end
end
--Normal personal star counter
if StarCounter >= 100 then
djui_hud_set_adjusted_color(255, 246, 0, a)
djui_hud_print_text(tostring(StarCounter), screenWidth - 61 - timerX, screenHeight - 208 - timerY, 1)
djui_hud_set_adjusted_color(232, 17, 35, a)
djui_hud_render_texture(gTextures.star, screenWidth - 77 - timerX, screenHeight - 208 - timerY, 1, 1)
else
djui_hud_set_adjusted_color(246, 246, 246, a)
djui_hud_print_text(tostring("X"), screenWidth - 61 - timerX, screenHeight - 208 - timerY, 1)
djui_hud_set_adjusted_color(255, 246, 0, a)
djui_hud_print_text(tostring(StarCounter), screenWidth - 46.8 - timerX, screenHeight - 208 - timerY, 1)
djui_hud_set_adjusted_color(232, 17, 35, a)
djui_hud_render_texture(gTextures.star, screenWidth - 77 - timerX, screenHeight - 208 - timerY, 1, 1)
end
--Total star counter
if timerValFrames ~= 0 then
timerX = 0
timerY = -10
end
local perceived_total_counter = TotalStarCounter
local milestone_counter = 0
while perceived_total_counter >= 10000 do
perceived_total_counter = perceived_total_counter - 10000
milestone_counter = milestone_counter + 1
end
if perceived_total_counter >= 100 then
djui_hud_set_adjusted_color(255, 246, 0, a)
djui_hud_print_text(tostring(perceived_total_counter), screenWidth - 61 - timerX, screenHeight - 190 - timerY, 1)
djui_hud_set_adjusted_color(50, 176, 40, a)
djui_hud_render_texture(gTextures.star, screenWidth - 77 - timerX, screenHeight - 190 - timerY, 1, 1)
if milestone_counter > 0 then
djui_hud_set_adjusted_color(246, 246, 246, a)
djui_hud_print_text(string.format("x%d", milestone_counter), screenWidth - 77 - timerX, screenHeight - 174 - timerY, 0.5)
end
else
djui_hud_set_adjusted_color(246, 246, 246, a)
djui_hud_print_text(tostring("X"), screenWidth - 61 - timerX, screenHeight - 190 - timerY, 1)
djui_hud_set_adjusted_color(255, 246, 0, a)
djui_hud_print_text(tostring(perceived_total_counter), screenWidth - 46.8 - timerX, screenHeight - 190 - timerY, 1)
djui_hud_set_adjusted_color(50, 176, 40, a)
djui_hud_render_texture(gTextures.star, screenWidth - 77 - timerX, screenHeight - 190 - timerY, 1, 1)
if milestone_counter > 0 then
djui_hud_set_adjusted_color(246, 246, 246, a)
djui_hud_print_text(string.format("x%d", milestone_counter), screenWidth - 77 - timerX, screenHeight - 174 - timerY, 0.5)
end
end
--StarCounter = 120
--StarCounter = 120
end
function PSToggle(msg)
if msg == string.lower("On") or msg == "1" then
psToggle = 1
return true
elseif msg == string.lower("Off") or msg == "0" then
psToggle = 0
return true
end
if msg == string.lower("On") or msg == "1" then
psToggle = 1
return true
elseif msg == string.lower("Off") or msg == "0" then
psToggle = 0
return true
end
end
---------

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -2,11 +2,6 @@
oHiddenStarLastInteractedPlayer = nil
function bhv_custom_hidden_star_trigger_init(obj)
--obj.oFlags = (OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
--obj.hitboxRadius = 200
--obj.hitboxHeight = 200
--obj.oIntangibleTimer = 0
network_init_object(obj, true, { 'activeFlags', 'oInteractStatus' })
end
@ -35,12 +30,9 @@ function bhv_custom_hidden_star_trigger_loop(obj)
end
end
--bhvSMSRHiddenStarTrigger = hook_behavior(nil, OBJ_LIST_LEVEL, true, bhv_custom_hidden_star_trigger_init, bhv_custom_hidden_star_trigger_loop)
--------------
function bhv_custom_hidden_star_init(obj)
--obj.oFlags = (OBJ_FLAG_PERSISTENT_RESPAWN | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
local count = obj_count_objects_with_behavior_id(bhvSMSRHiddenStarTrigger)
if count == 0 then
local star = spawn_object_abs_with_rot(obj, 0, E_MODEL_STAR, id_bhvStar, obj.oPosX, obj.oPosY, obj.oPosZ, 0, 0, 0)
@ -88,38 +80,17 @@ function bhv_custom_hidden_star_loop(obj)
})
end
--bhvSMSRHiddenStar = hook_behavior(nil, OBJ_LIST_LEVEL, true, bhv_custom_hidden_star_init, bhv_custom_hidden_star_loop)
--------------
function bhv_breakable_rock_init(obj)
--obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
--obj.collisionData = smlua_collision_util_get("col_hmc_geo_000530_0x7020308")
--obj.oCollisionDistance = 500
--bhv_init_room()
network_init_object(obj, false, nil)
end
--[[
function bhv_breakable_rock_loop(obj)
bhv_breakable_box_loop()
load_object_collision_model()
end
bhvSMSRBreakableRock = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_breakable_rock_init, bhv_breakable_rock_loop)
--]]
--------------
function bhv_breakable_window_init(obj)
obj.oFlags = (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("wf_seg7_collision_small_bomp")
obj.oIntangibleTimer = 0
obj.hitboxRadius = 200
obj.hitboxHeight = 200
--obj.oMoveAngleYaw = obj.oMoveAngleYaw - 0x4000
network_init_object(obj, false, { 'oInteractStatus' });
network_init_object(obj, false, { 'oFlags', 'oInteractStatus' });
end
function bhv_breakable_window_loop(obj)
@ -135,106 +106,42 @@ function bhv_breakable_window_loop(obj)
end
end
---bhvSMSRBreakableWindow = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_breakable_window_init, bhv_breakable_window_loop)
--------------
function bhv_star_replica_init(obj)
--obj.oFlags = (OBJ_FLAG_HOLDABLE | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
--bhv_init_room()
--bhv_collect_star_init()
despawn_if_stars_below_count(obj, 121) -- 121 star check
end
--[[
function bhv_star_replica_loop(obj)
bhv_collect_star_loop()
end
--]]
--bhvSMSRStarReplica = hook_behavior(nil, OBJ_LIST_LEVEL, true, bhv_star_replica_init, bhv_star_replica_loop)
--------------
function bhv_red_sinking_platform_init(obj)
--obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
--obj.collisionData = smlua_collision_util_get("col_rr_geo_0008C0_0x701ae78")
--obj.oPosY = obj.oPosY - 306
cur_obj_set_home_once()
network_init_object(obj, true, { 'oSinkWhenSteppedOnUnk104', 'oGraphYOffset', 'oHomeY' })
end
--[[
function bhv_red_sinking_platform_loop(obj)
sinking_perform_sink_check(obj)
sinking_perform_sink_check(obj) -- called twice
load_object_collision_model()
end
bhvSMSRRedSinkingPlatform = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_red_sinking_platform_init, bhv_red_sinking_platform_loop)
--]]
--------------
--[[
function bhv_star_door_wall_init(obj)
obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
obj.collisionData = smlua_collision_util_get("custom_collision_door_30_stars")
obj.oCollisionDistance = 4000
end
--]]
function bhv_star_door_wall_loop(obj)
if get_star_count() >= 30 then
obj.activeFlags = ACTIVE_FLAG_DEACTIVATED
end
--load_object_collision_model()
end
--bhvSMSR30StarDoorWall = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_star_door_wall_init, bhv_star_door_wall_loop)
--------------
function bhv_special_breakable_box_init(obj)
--obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
--obj.collisionData = smlua_collision_util_get("breakable_box_seg8_collision_08012D70")
--obj.oCollisionDistance = 500
--bhv_init_room()
despawn_if_stars_below_count(obj, 121) -- 121 star check
network_init_object(obj, false, nil);
end
--[[
function bhv_special_breakable_box_loop(obj)
bhv_breakable_box_loop()
load_object_collision_model()
end
bhvSMSRSpecialBreakeableBox = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_special_breakable_box_init, bhv_special_breakable_box_loop)
--]]
--------------
--[[
function bhv_piranha_plant_wild_init(obj)
obj.oFlags = (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.oAnimations = gObjectAnimations.piranha_plant_seg6_anims_0601C31C
cur_obj_init_animation(0)
obj.oInteractType = INTERACT_MR_BLIZZARD
obj.hitboxRadius = 400
obj.hitboxHeight = 400
end
--]]
function bhv_piranha_plant_wild_loop(obj)
end
--bhvSMSRPiranhaPlantWild = hook_behavior(nil, OBJ_LIST_GENACTOR, true, bhv_piranha_plant_wild_init, bhv_piranha_plant_wild_loop)
--------------
function bhv_big_leaves_init(obj)
obj.header.gfx.node.flags = obj.header.gfx.node.flags | GRAPH_RENDER_CYLBOARD
end
--------------
@ -246,357 +153,80 @@ end
--------------
function bhv_tambourine_init(obj)
obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
obj.collisionData = smlua_collision_util_get("col_ddd_geo_0004A0_0x700cbf0")
network_init_object(obj, false, nil);
end
function bhv_tambourine_loop(obj)
bhv_ttc_spinner_update()
load_object_collision_model()
end
bhvSMSRTambourine = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_tambourine_init, bhv_tambourine_loop)
--------------
function bhv_small_bee_init(obj)
obj.oFlags = (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.header.gfx.node.flags = obj.header.gfx.node.flags | GRAPH_RENDER_BILLBOARD
cur_obj_set_home_once()
bhv_init_room()
cur_obj_scale(150 / 100.0)
network_init_object(obj, false, nil);
end
function bhv_small_bee_loop(obj)
bhv_fly_guy_update()
bhv_fly_guy_update() -- called twice
obj.oAnimState = obj.oAnimState + 1
end
bhvSMSRSmallBee = hook_behavior(nil, OBJ_LIST_GENACTOR, true, bhv_small_bee_init, bhv_small_bee_loop)
--------------
function bhv_drum_stick_init(obj)
obj.oFlags = (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("col_ddd_geo_000478_0x7000540")
bhv_ssl_moving_pyramid_wall_init()
end
function bhv_drum_stick_loop(obj)
bhv_ssl_moving_pyramid_wall_loop()
load_object_collision_model()
end
bhvSMSRDrumStick = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_drum_stick_init, bhv_drum_stick_loop)
--------------
function bhv_star_moving_init(obj)
obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
bhv_init_room()
bhv_collect_star_init()
network_init_object(obj, false, nil);
end
function bhv_star_moving_loop(obj)
bhv_collect_star_loop()
bhv_ssl_moving_pyramid_wall_loop()
end
bhvSMSRStarMoving = hook_behavior(nil, OBJ_LIST_LEVEL, true, bhv_star_moving_init, bhv_star_moving_loop)
--------------
function bhv_falling_domino_init(obj)
obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
obj.collisionData = smlua_collision_util_get("col_ttm_geo_000DF4_0x702b870")
cur_obj_set_home_once()
network_init_object(obj, false, nil);
end
function bhv_falling_domino_loop(obj)
bhv_volcano_trap_loop()
load_object_collision_model()
end
bhvSMSRFallingDomino = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_falling_domino_init, bhv_falling_domino_loop)
--------------
function bhv_lava_lift_init(obj)
obj.oFlags = (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.oPosY = obj.oPosY + -50
obj.collisionData = smlua_collision_util_get("col_ttm_geo_000920_0x700a710")
network_init_object(obj, false, nil);
end
function bhv_lava_lift_loop(obj)
bhv_lll_moving_octagonal_mesh_platform_loop()
load_object_collision_model()
end
bhvSMSRLavaLift = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_lava_lift_init, bhv_lava_lift_loop)
--------------
function bhv_rotating_lava_platform_init(obj)
obj.oFlags = (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("col_lll_geo_000A78_0x701d68c")
cur_obj_set_home_once()
network_init_object(obj, false, nil);
end
function bhv_rotating_lava_platform_loop(obj)
obj.oAngleVelYaw = 256
obj.oMoveAngleYaw = obj.oMoveAngleYaw + 256
load_object_collision_model()
end
bhvSMSRRotatingLavaPlatform = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_rotating_lava_platform_init, bhv_rotating_lava_platform_loop)
--------------
function bhv_small_swing_platform_init(obj)
obj.collisionData = smlua_collision_util_get("rr_seg7_collision_pendulum")
obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
obj.oCollisionDistance = 2000
cur_obj_scale(160 / 100.0)
bhv_swing_platform_init()
end
function bhv_small_swing_platform_loop(obj)
bhv_swing_platform_update()
load_object_collision_model()
end
bhvSMSRSmallSwingPlatform = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_small_swing_platform_init, bhv_small_swing_platform_loop)
--------------
function bhv_sinking_donut_init(obj)
obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
obj.collisionData = smlua_collision_util_get("col_rr_geo_000920_0x70295ec")
obj.oPosY = obj.oPosY - 306
cur_obj_set_home_once()
network_init_object(obj, true, { 'oSinkWhenSteppedOnUnk104', 'oGraphYOffset', 'oHomeY' })
end
function bhv_sinking_donut_loop(obj)
sinking_perform_sink_check(obj)
sinking_perform_sink_check(obj) -- called twice
load_object_collision_model()
end
bhvSMSRSinkingDonut = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_sinking_donut_init, bhv_sinking_donut_loop)
--------------
function bhv_floating_thwomp_init(obj)
obj.collisionData = smlua_collision_util_get("thwomp_seg5_collision_0500B7D0")
obj.oFlags = (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.oGraphYOffset = 5
bhv_butterfly_init()
network_init_object(obj, true, { 'oHomeX', 'oHomeY', 'oHomeZ', 'oAction', 'oPosX', 'oPosY', 'oPosZ', 'oVelX', 'oVelY', 'oVelZ' })
end
function bhv_floating_thwomp_loop(obj)
bhv_butterfly_loop()
load_object_collision_model()
end
bhvSMSRFloatingThwomp = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_floating_thwomp_init, bhv_floating_thwomp_loop)
--------------
function bhv_tilting_pyramid_init(obj)
obj.oFlags = (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("col_geo_bbh_0005F8_0x701fba8")
cur_obj_set_home_once()
bhv_platform_normals_init()
end
function bhv_tilting_pyramid_loop(obj)
bhv_tilting_inverted_pyramid_loop()
load_object_collision_model()
end
bhvSMSRTiltingPyramid = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_tilting_pyramid_init, bhv_tilting_pyramid_loop)
--------------
function bhv_platform_lift_init(obj)
obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
obj.collisionData = smlua_collision_util_get("col_geo_bbh_0005C8_0x701f700")
obj.oArrowLiftUnk100 = 1
end
function bhv_platform_lift_loop(obj)
bhv_arrow_lift_loop()
load_object_collision_model()
end
bhvSMSRPlatformLift = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_platform_lift_init, bhv_platform_lift_loop)
--------------
function bhv_rising_lava_init(obj)
obj.oFlags = (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("col_geo_bbh_0005B0_0x701f2d8")
bhv_ssl_moving_pyramid_wall_init()
end
function bhv_rising_lava_loop(obj)
bhv_ssl_moving_pyramid_wall_loop()
load_object_collision_model()
end
bhvSMSRRisingLava = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_rising_lava_init, bhv_rising_lava_loop)
--------------
function bhv_rising_tall_platform_init(obj)
obj.oFlags = (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("col_geo_bbh_000628_0x70200f0")
bhv_ssl_moving_pyramid_wall_init()
end
function bhv_rising_tall_platform_loop(obj)
bhv_ssl_moving_pyramid_wall_loop()
load_object_collision_model()
end
bhvSMSRRisingTallPlatform = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_rising_tall_platform_init, bhv_rising_tall_platform_loop)
--------------
function bhv_sinking_platform_init(obj)
obj.oFlags = (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("col_geo_bbh_000640_0x600d758")
obj.oPosY = obj.oPosY + 5
obj.oCollisionDistance = 2000
end
function bhv_sinking_platform_loop(obj)
bhv_lll_sinking_square_platforms_loop()
bhv_lll_sinking_square_platforms_loop() -- called twice
load_object_collision_model()
end
bhvSMSRSinkingPlatform = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_sinking_platform_init, bhv_sinking_platform_loop)
--------------
function bhv_toxic_waste_platform_init(obj)
obj.oFlags = (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("col_hmc_geo_000548_0x7023478")
obj.oPosY = obj.oPosY - 50
cur_obj_set_home_once()
network_init_object(obj, true, { 'oSinkWhenSteppedOnUnk104', 'oGraphYOffset', 'oHomeY' })
end
function bhv_toxic_waste_platform_loop(obj)
sinking_perform_sink_check(obj)
load_object_collision_model()
end
bhvSMSRToxicWastePlatform = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_toxic_waste_platform_init, bhv_toxic_waste_platform_loop)
--------------
function bhv_attracted_space_box_init(obj)
obj.oFlags = (OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("ssl_seg7_collision_tox_box")
obj.oPosY = obj.oPosY + 256
cur_obj_set_home_once()
function bhv_pushable_tomb_init(obj)
network_init_object(obj, true, { 'oPosX', 'oPosY', 'oPosZ' })
end
function bhv_attracted_space_box_loop(obj)
bhv_chuckya_loop()
bhv_spindrift_loop()
cur_obj_scale(64 / 100.0)
load_object_collision_model()
end
bhvSMSRAttractedSpaceBox = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_attracted_space_box_init, bhv_attracted_space_box_loop)
--------------
function bhv_space_box_init(obj)
obj.oFlags = (OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
obj.collisionData = smlua_collision_util_get("ssl_seg7_collision_tox_box")
obj.oPosY = obj.oPosY + 256
end
function bhv_space_box_loop(obj)
bhv_spindrift_loop()
cur_obj_scale(64 / 100.0)
load_object_collision_model()
end
bhvSMSRSpaceBox = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_space_box_init, bhv_space_box_loop)
--------------
function bhv_space_octagon_platform_init(obj)
obj.collisionData = smlua_collision_util_get("ssl_seg7_collision_spindel")
obj.oFlags = (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
cur_obj_set_home_once()
bhv_ttc_moving_bar_init()
end
function bhv_space_octagon_platform_loop(obj)
bhv_ttc_moving_bar_update()
load_object_collision_model()
end
bhvSMSRSpaceOctagonPlatform = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_space_octagon_platform_init, bhv_space_octagon_platform_loop)
--------------
function bhv_space_red_platform_init(obj)
obj.collisionData = smlua_collision_util_get("ssl_seg7_collision_grindel")
obj.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE
cur_obj_set_home_once()
cur_obj_scale(91 / 100.0)
bhv_horizontal_grindel_init()
end
function bhv_space_red_platform_loop(obj)
bhv_squishable_platform_loop()
bhv_squishable_platform_loop() -- called twice
load_object_collision_model()
end
bhvSMSRSpaceRedPlatform = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_space_red_platform_init, bhv_space_red_platform_loop)
--------------
function bhv_bullet_mine_init(obj)
obj.oFlags = (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
cur_obj_set_home_once()
obj.hitboxRadius = 50
obj.hitboxHeight = 50
obj.hitboxDownOffset = 50
obj.oInteractType = INTERACT_DAMAGE
obj.oDamageOrCoinValue = 3
cur_obj_scale(256 / 100.0)
obj.oIntangibleTimer = 0
bhv_bullet_bill_init()
end
function bhv_bullet_mine_loop(obj)
bhv_bullet_bill_loop()
end
bhvSMSRBulletMine = hook_behavior(nil, OBJ_LIST_GENACTOR, true, bhv_bullet_mine_init, bhv_bullet_mine_loop)
--------------
E_MODEL_VCUTM_LIGHT = smlua_model_util_get_id("vcutm_light_geo")
function bhv_lights_on_switch_init(obj)
--obj.oFlags = (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)
--obj.oCollisionDistance = 8000
obj.parentObj = cur_obj_nearest_object_with_behavior(get_behavior_from_id(id_bhvFloorSwitchAnimatesObject));
obj_set_model_extended(obj, E_MODEL_VCUTM_LIGHT)
network_init_object(obj, true, { 'oFloorSwitchPressAnimationUnkF4', 'oFloorSwitchPressAnimationUnkF8', 'oFloorSwitchPressAnimationUnkFC' })
end
function bhv_lights_on_switch_loop(obj)
@ -646,6 +276,4 @@ function bhv_lights_on_switch_loop(obj)
else
cur_obj_unhide()
end
end
--bhvSMSRLightsOnSwitch = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_lights_on_switch_init, bhv_lights_on_switch_loop)
end

View file

@ -35,4 +35,4 @@ hook_event(HOOK_UPDATE, function()
if (m.controller.buttonPressed & L_TRIG) ~= 0 then
center_rom_hack_camera()
end
end)
end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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