mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-22 12:05:11 +00:00
Improvements and optional tweaks (#263)
- Added visibleToEnemies to invisible fields - Added cur_obj_set_billboard_if_vanilla_cam() which makes trees only billboard if free camera is off - Added RespawnShellBoxes to gBehaviorValues - Added pauseExitAnywhere to gLevelValues - Disabled the power meter chime playing on the main menu whenever disconnecting from a server with low health
This commit is contained in:
parent
3dcbd5908f
commit
35f7caecc1
19 changed files with 94 additions and 42 deletions
|
@ -72,7 +72,8 @@ override_field_mutable = {
|
||||||
}
|
}
|
||||||
|
|
||||||
override_field_invisible = {
|
override_field_invisible = {
|
||||||
"Mod": [ "files" ]
|
"Mod": [ "files" ],
|
||||||
|
"MarioState": [ "visibleToEnemies" ],
|
||||||
}
|
}
|
||||||
|
|
||||||
override_field_immutable = {
|
override_field_immutable = {
|
||||||
|
|
|
@ -6795,6 +6795,11 @@ function cur_obj_set_behavior(behavior)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- @return nil
|
||||||
|
function cur_obj_set_billboard_if_vanilla_cam()
|
||||||
|
-- ...
|
||||||
|
end
|
||||||
|
|
||||||
--- @param a0 Pointer_integer
|
--- @param a0 Pointer_integer
|
||||||
--- @return integer
|
--- @return integer
|
||||||
function cur_obj_set_direction_table(a0)
|
function cur_obj_set_direction_table(a0)
|
||||||
|
|
|
@ -188,6 +188,7 @@
|
||||||
--- @field public RacingPenguinBigRadius number
|
--- @field public RacingPenguinBigRadius number
|
||||||
--- @field public RacingPenguinHeight number
|
--- @field public RacingPenguinHeight number
|
||||||
--- @field public RacingPenguinRadius number
|
--- @field public RacingPenguinRadius number
|
||||||
|
--- @field public RespawnShellBoxes integer
|
||||||
--- @field public ShowStarMilestones integer
|
--- @field public ShowStarMilestones integer
|
||||||
--- @field public ToadStar1Requirement integer
|
--- @field public ToadStar1Requirement integer
|
||||||
--- @field public ToadStar2Requirement integer
|
--- @field public ToadStar2Requirement integer
|
||||||
|
@ -641,6 +642,7 @@
|
||||||
--- @field public floorLowerLimitShadow integer
|
--- @field public floorLowerLimitShadow integer
|
||||||
--- @field public metalCapDuration integer
|
--- @field public metalCapDuration integer
|
||||||
--- @field public metalCapDurationCotmc integer
|
--- @field public metalCapDurationCotmc integer
|
||||||
|
--- @field public pauseExitAnywhere boolean
|
||||||
--- @field public metalCapSequence integer
|
--- @field public metalCapSequence integer
|
||||||
--- @field public pssSlideStarIndex integer
|
--- @field public pssSlideStarIndex integer
|
||||||
--- @field public pssSlideStarTime integer
|
--- @field public pssSlideStarTime integer
|
||||||
|
|
|
@ -3202,16 +3202,12 @@ const BehaviorScript bhvFloorTrapInCastle[] = {
|
||||||
const BehaviorScript bhvTree[] = {
|
const BehaviorScript bhvTree[] = {
|
||||||
BEGIN(OBJ_LIST_POLELIKE),
|
BEGIN(OBJ_LIST_POLELIKE),
|
||||||
ID(id_bhvTree),
|
ID(id_bhvTree),
|
||||||
#ifdef BETTERCAMERA
|
|
||||||
CYLBOARD(),
|
|
||||||
#else
|
|
||||||
BILLBOARD(),
|
|
||||||
#endif
|
|
||||||
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
|
||||||
SET_INT(oInteractType, INTERACT_POLE),
|
SET_INT(oInteractType, INTERACT_POLE),
|
||||||
SET_HITBOX(/*Radius*/ 80, /*Height*/ 500),
|
SET_HITBOX(/*Radius*/ 80, /*Height*/ 500),
|
||||||
SET_INT(oIntangibleTimer, 0),
|
SET_INT(oIntangibleTimer, 0),
|
||||||
BEGIN_LOOP(),
|
BEGIN_LOOP(),
|
||||||
|
CALL_NATIVE(cur_obj_set_billboard_if_vanilla_cam),
|
||||||
CALL_NATIVE(bhv_pole_base_loop),
|
CALL_NATIVE(bhv_pole_base_loop),
|
||||||
END_LOOP(),
|
END_LOOP(),
|
||||||
};
|
};
|
||||||
|
|
|
@ -3726,6 +3726,24 @@
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
## [cur_obj_set_billboard_if_vanilla_cam](#cur_obj_set_billboard_if_vanilla_cam)
|
||||||
|
|
||||||
|
### Lua Example
|
||||||
|
`cur_obj_set_billboard_if_vanilla_cam()`
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
- None
|
||||||
|
|
||||||
|
### C Prototype
|
||||||
|
`void cur_obj_set_billboard_if_vanilla_cam(void);`
|
||||||
|
|
||||||
|
[:arrow_up_small:](#)
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
## [cur_obj_set_direction_table](#cur_obj_set_direction_table)
|
## [cur_obj_set_direction_table](#cur_obj_set_direction_table)
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
|
|
|
@ -1273,6 +1273,7 @@
|
||||||
- [cur_obj_scale](functions-4.md#cur_obj_scale)
|
- [cur_obj_scale](functions-4.md#cur_obj_scale)
|
||||||
- [cur_obj_scale_over_time](functions-4.md#cur_obj_scale_over_time)
|
- [cur_obj_scale_over_time](functions-4.md#cur_obj_scale_over_time)
|
||||||
- [cur_obj_set_behavior](functions-4.md#cur_obj_set_behavior)
|
- [cur_obj_set_behavior](functions-4.md#cur_obj_set_behavior)
|
||||||
|
- [cur_obj_set_billboard_if_vanilla_cam](functions-4.md#cur_obj_set_billboard_if_vanilla_cam)
|
||||||
- [cur_obj_set_direction_table](functions-4.md#cur_obj_set_direction_table)
|
- [cur_obj_set_direction_table](functions-4.md#cur_obj_set_direction_table)
|
||||||
- [cur_obj_set_face_angle_to_move_angle](functions-4.md#cur_obj_set_face_angle_to_move_angle)
|
- [cur_obj_set_face_angle_to_move_angle](functions-4.md#cur_obj_set_face_angle_to_move_angle)
|
||||||
- [cur_obj_set_hitbox_and_die_if_attacked](functions-4.md#cur_obj_set_hitbox_and_die_if_attacked)
|
- [cur_obj_set_hitbox_and_die_if_attacked](functions-4.md#cur_obj_set_hitbox_and_die_if_attacked)
|
||||||
|
|
|
@ -310,6 +310,7 @@
|
||||||
| RacingPenguinBigRadius | `number` | |
|
| RacingPenguinBigRadius | `number` | |
|
||||||
| RacingPenguinHeight | `number` | |
|
| RacingPenguinHeight | `number` | |
|
||||||
| RacingPenguinRadius | `number` | |
|
| RacingPenguinRadius | `number` | |
|
||||||
|
| RespawnShellBoxes | `integer` | |
|
||||||
| ShowStarMilestones | `integer` | |
|
| ShowStarMilestones | `integer` | |
|
||||||
| ToadStar1Requirement | `integer` | |
|
| ToadStar1Requirement | `integer` | |
|
||||||
| ToadStar2Requirement | `integer` | |
|
| ToadStar2Requirement | `integer` | |
|
||||||
|
@ -936,6 +937,7 @@
|
||||||
| floorLowerLimitShadow | `integer` | |
|
| floorLowerLimitShadow | `integer` | |
|
||||||
| metalCapDuration | `integer` | |
|
| metalCapDuration | `integer` | |
|
||||||
| metalCapDurationCotmc | `integer` | |
|
| metalCapDurationCotmc | `integer` | |
|
||||||
|
| pauseExitAnywhere | `boolean` | |
|
||||||
| metalCapSequence | `integer` | |
|
| metalCapSequence | `integer` | |
|
||||||
| pssSlideStarIndex | `integer` | |
|
| pssSlideStarIndex | `integer` | |
|
||||||
| pssSlideStarTime | `integer` | |
|
| pssSlideStarTime | `integer` | |
|
||||||
|
|
|
@ -170,7 +170,8 @@ void exclamation_box_act_4(void) {
|
||||||
spawn_mist_particles_variable(0, 0, 46.0f);
|
spawn_mist_particles_variable(0, 0, 46.0f);
|
||||||
spawn_triangle_break_particles(20, 139, 0.3f, o->oAnimState);
|
spawn_triangle_break_particles(20, 139, 0.3f, o->oAnimState);
|
||||||
create_sound_spawner(SOUND_GENERAL_BREAK_BOX);
|
create_sound_spawner(SOUND_GENERAL_BREAK_BOX);
|
||||||
if (o->oBehParams2ndByte <= 3) {
|
u8 threshold = gBehaviorValues.RespawnShellBoxes ? 3 : 2;
|
||||||
|
if (o->oBehParams2ndByte <= threshold) {
|
||||||
o->oAction = 5;
|
o->oAction = 5;
|
||||||
cur_obj_hide();
|
cur_obj_hide();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -97,6 +97,7 @@ struct LevelValues gDefaultLevelValues = {
|
||||||
.floorLowerLimit = FLOOR_LOWER_LIMIT,
|
.floorLowerLimit = FLOOR_LOWER_LIMIT,
|
||||||
.floorLowerLimitMisc = FLOOR_LOWER_LIMIT_MISC,
|
.floorLowerLimitMisc = FLOOR_LOWER_LIMIT_MISC,
|
||||||
.floorLowerLimitShadow = FLOOR_LOWER_LIMIT_SHADOW,
|
.floorLowerLimitShadow = FLOOR_LOWER_LIMIT_SHADOW,
|
||||||
|
.pauseExitAnywhere = 1,
|
||||||
.disableActs = false,
|
.disableActs = false,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -130,6 +131,7 @@ struct BehaviorValues gDefaultBehaviorValues = {
|
||||||
.BowlingBallThiSmallSpeed = 10.0f,
|
.BowlingBallThiSmallSpeed = 10.0f,
|
||||||
.GrateStarRequirement = 120,
|
.GrateStarRequirement = 120,
|
||||||
.ShowStarMilestones = TRUE,
|
.ShowStarMilestones = TRUE,
|
||||||
|
.RespawnShellBoxes = TRUE,
|
||||||
.starsNeededForDialog = { 1, 3, 8, 30, 50, 70 },
|
.starsNeededForDialog = { 1, 3, 8, 30, 50, 70 },
|
||||||
.dialogs = {
|
.dialogs = {
|
||||||
.BobombBuddyBob1Dialog = DIALOG_004,
|
.BobombBuddyBob1Dialog = DIALOG_004,
|
||||||
|
|
|
@ -62,6 +62,7 @@ struct LevelValues {
|
||||||
s16 floorLowerLimit;
|
s16 floorLowerLimit;
|
||||||
s16 floorLowerLimitMisc;
|
s16 floorLowerLimitMisc;
|
||||||
s16 floorLowerLimitShadow;
|
s16 floorLowerLimitShadow;
|
||||||
|
bool pauseExitAnywhere;
|
||||||
bool disableActs;
|
bool disableActs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -225,6 +226,7 @@ struct BehaviorValues {
|
||||||
f32 BowlingBallThiSmallSpeed;
|
f32 BowlingBallThiSmallSpeed;
|
||||||
u16 GrateStarRequirement;
|
u16 GrateStarRequirement;
|
||||||
u8 ShowStarMilestones;
|
u8 ShowStarMilestones;
|
||||||
|
u8 RespawnShellBoxes;
|
||||||
struct StarsNeededForDialog starsNeededForDialog;
|
struct StarsNeededForDialog starsNeededForDialog;
|
||||||
struct BehaviorDialogs dialogs;
|
struct BehaviorDialogs dialogs;
|
||||||
struct BehaviorTrajectories trajectories;
|
struct BehaviorTrajectories trajectories;
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#ifdef BETTERCAMERA
|
#ifdef BETTERCAMERA
|
||||||
#include "bettercamera.h"
|
#include "bettercamera.h"
|
||||||
#endif
|
#endif
|
||||||
|
#include "hardcoded.h"
|
||||||
|
|
||||||
u16 gDialogColorFadeTimer;
|
u16 gDialogColorFadeTimer;
|
||||||
s8 gLastDialogLineNum;
|
s8 gLastDialogLineNum;
|
||||||
|
@ -2859,7 +2860,7 @@ s16 render_pause_courses_and_castle(void) {
|
||||||
render_pause_red_coins();
|
render_pause_red_coins();
|
||||||
|
|
||||||
/* Always allow exiting from course */
|
/* Always allow exiting from course */
|
||||||
if (TRUE || (gMarioStates[0].action & ACT_FLAG_PAUSE_EXIT)) {
|
if (gLevelValues.pauseExitAnywhere || (gMarioStates[0].action & ACT_FLAG_PAUSE_EXIT)) {
|
||||||
render_pause_course_options(99, 93, &gDialogLineNum, 15);
|
render_pause_course_options(99, 93, &gDialogLineNum, 15);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1077,7 +1077,7 @@ void update_hud_values(void) {
|
||||||
gHudDisplay.lives = gMarioState->numLives;
|
gHudDisplay.lives = gMarioState->numLives;
|
||||||
gHudDisplay.keys = gMarioState->numKeys;
|
gHudDisplay.keys = gMarioState->numKeys;
|
||||||
|
|
||||||
if (numHealthWedges > gHudDisplay.wedges) {
|
if (numHealthWedges > gHudDisplay.wedges && !gDjuiInMainMenu) {
|
||||||
play_sound(SOUND_MENU_POWER_METER, gGlobalSoundSource);
|
play_sound(SOUND_MENU_POWER_METER, gGlobalSoundSource);
|
||||||
}
|
}
|
||||||
gHudDisplay.wedges = numHealthWedges;
|
gHudDisplay.wedges = numHealthWedges;
|
||||||
|
@ -1548,13 +1548,10 @@ s32 update_level(void) {
|
||||||
changeLevel = play_mode_normal();
|
changeLevel = play_mode_normal();
|
||||||
break;
|
break;
|
||||||
case PLAY_MODE_PAUSED:
|
case PLAY_MODE_PAUSED:
|
||||||
#ifdef DEVELOPMENT
|
if (!(configSingleplayerPause && network_player_connected_count() == 1)) {
|
||||||
if (configDisableDevPause) {
|
|
||||||
changeLevel = play_mode_normal();
|
changeLevel = play_mode_normal();
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
changeLevel = play_mode_normal();
|
|
||||||
#endif
|
|
||||||
if (sCurrPlayMode == PLAY_MODE_PAUSED) {
|
if (sCurrPlayMode == PLAY_MODE_PAUSED) {
|
||||||
changeLevel = play_mode_paused();
|
changeLevel = play_mode_paused();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1840,6 +1840,16 @@ void obj_set_cylboard(struct Object *obj) {
|
||||||
obj->header.gfx.node.flags |= GRAPH_RENDER_CYLBOARD;
|
obj->header.gfx.node.flags |= GRAPH_RENDER_CYLBOARD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cur_obj_set_billboard_if_vanilla_cam(void) {
|
||||||
|
if (configEnableCamera) {
|
||||||
|
o->header.gfx.node.flags &= ~GRAPH_RENDER_BILLBOARD;
|
||||||
|
o->header.gfx.node.flags |= GRAPH_RENDER_CYLBOARD;
|
||||||
|
} else {
|
||||||
|
o->header.gfx.node.flags &= ~GRAPH_RENDER_CYLBOARD;
|
||||||
|
o->header.gfx.node.flags |= GRAPH_RENDER_BILLBOARD;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void obj_set_hitbox_radius_and_height(struct Object *o, f32 radius, f32 height) {
|
void obj_set_hitbox_radius_and_height(struct Object *o, f32 radius, f32 height) {
|
||||||
if (o == NULL) { return; }
|
if (o == NULL) { return; }
|
||||||
|
|
||||||
|
|
|
@ -204,6 +204,8 @@ void cur_obj_shake_y(f32 amount);
|
||||||
void cur_obj_start_cam_event(UNUSED struct Object *obj, s32 cameraEvent);
|
void cur_obj_start_cam_event(UNUSED struct Object *obj, s32 cameraEvent);
|
||||||
void set_mario_interact_hoot_if_in_range(UNUSED s32 sp0, UNUSED s32 sp4, f32 sp8);
|
void set_mario_interact_hoot_if_in_range(UNUSED s32 sp0, UNUSED s32 sp4, f32 sp8);
|
||||||
void obj_set_billboard(struct Object *obj);
|
void obj_set_billboard(struct Object *obj);
|
||||||
|
void obj_set_cylboard(struct Object *obj);
|
||||||
|
void cur_obj_set_billboard_if_vanilla_cam(void);
|
||||||
void obj_set_hitbox_radius_and_height(struct Object *o, f32 radius, f32 height);
|
void obj_set_hitbox_radius_and_height(struct Object *o, f32 radius, f32 height);
|
||||||
void obj_set_hurtbox_radius_and_height(struct Object *o, f32 radius, f32 height);
|
void obj_set_hurtbox_radius_and_height(struct Object *o, f32 radius, f32 height);
|
||||||
void cur_obj_set_hitbox_radius_and_height(f32 radius, f32 height);
|
void cur_obj_set_hitbox_radius_and_height(f32 radius, f32 height);
|
||||||
|
|
|
@ -142,9 +142,6 @@ bool configUncappedFramerate = true;
|
||||||
unsigned int configFrameLimit = 60;
|
unsigned int configFrameLimit = 60;
|
||||||
unsigned int configDrawDistance = 5;
|
unsigned int configDrawDistance = 5;
|
||||||
bool configDisablePopups = 0;
|
bool configDisablePopups = 0;
|
||||||
#ifdef DEVELOPMENT
|
|
||||||
bool configDisableDevPause = 1;
|
|
||||||
#endif
|
|
||||||
#ifdef LUA_PROFILER
|
#ifdef LUA_PROFILER
|
||||||
bool configLuaProfiler = 1;
|
bool configLuaProfiler = 1;
|
||||||
#endif
|
#endif
|
||||||
|
@ -152,6 +149,7 @@ bool configDisableDownloadedModels = 0;
|
||||||
unsigned int configInterpolationMode = 1;
|
unsigned int configInterpolationMode = 1;
|
||||||
unsigned int configGamepadNumber = 0;
|
unsigned int configGamepadNumber = 0;
|
||||||
bool configBackgroundGamepad = 1;
|
bool configBackgroundGamepad = 1;
|
||||||
|
bool configSingleplayerPause = 0;
|
||||||
|
|
||||||
static const struct ConfigOption options[] = {
|
static const struct ConfigOption options[] = {
|
||||||
{.name = "fullscreen", .type = CONFIG_TYPE_BOOL, .boolValue = &configWindow.fullscreen},
|
{.name = "fullscreen", .type = CONFIG_TYPE_BOOL, .boolValue = &configWindow.fullscreen},
|
||||||
|
@ -245,11 +243,9 @@ static const struct ConfigOption options[] = {
|
||||||
{.name = "coop_custom_palette_skin", .type = CONFIG_TYPE_COLOR , .colorValue = &configCustomPalette.parts[SKIN]},
|
{.name = "coop_custom_palette_skin", .type = CONFIG_TYPE_COLOR , .colorValue = &configCustomPalette.parts[SKIN]},
|
||||||
{.name = "coop_custom_palette_cap", .type = CONFIG_TYPE_COLOR , .colorValue = &configCustomPalette.parts[CAP]},
|
{.name = "coop_custom_palette_cap", .type = CONFIG_TYPE_COLOR , .colorValue = &configCustomPalette.parts[CAP]},
|
||||||
{.name = "coop_stay_in_level_after_star", .type = CONFIG_TYPE_UINT , .uintValue = &configStayInLevelAfterStar},
|
{.name = "coop_stay_in_level_after_star", .type = CONFIG_TYPE_UINT , .uintValue = &configStayInLevelAfterStar},
|
||||||
|
{.name = "coop_singleplayer_pause", .type = CONFIG_TYPE_BOOL , .boolValue = &configSingleplayerPause},
|
||||||
{.name = "share_lives", .type = CONFIG_TYPE_BOOL , .boolValue = &configShareLives},
|
{.name = "share_lives", .type = CONFIG_TYPE_BOOL , .boolValue = &configShareLives},
|
||||||
{.name = "disable_popups", .type = CONFIG_TYPE_BOOL , .boolValue = &configDisablePopups},
|
{.name = "disable_popups", .type = CONFIG_TYPE_BOOL , .boolValue = &configDisablePopups},
|
||||||
#ifdef DEVELOPMENT
|
|
||||||
{.name = "disable_devpause", .type = CONFIG_TYPE_BOOL , .boolValue = &configDisableDevPause},
|
|
||||||
#endif
|
|
||||||
#ifdef LUA_PROFILER
|
#ifdef LUA_PROFILER
|
||||||
{.name = "lua_profiler", .type = CONFIG_TYPE_BOOL , .boolValue = &configLuaProfiler},
|
{.name = "lua_profiler", .type = CONFIG_TYPE_BOOL , .boolValue = &configLuaProfiler},
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -99,14 +99,12 @@ extern bool configUncappedFramerate;
|
||||||
extern unsigned int configFrameLimit;
|
extern unsigned int configFrameLimit;
|
||||||
extern unsigned int configDrawDistance;
|
extern unsigned int configDrawDistance;
|
||||||
extern bool configDisablePopups;
|
extern bool configDisablePopups;
|
||||||
#ifdef DEVELOPMENT
|
|
||||||
extern bool configDisableDevPause;
|
|
||||||
#endif
|
|
||||||
#ifdef LUA_PROFILER
|
#ifdef LUA_PROFILER
|
||||||
extern bool configLuaProfiler;
|
extern bool configLuaProfiler;
|
||||||
#endif
|
#endif
|
||||||
extern bool configDisableDownloadedModels;
|
extern bool configDisableDownloadedModels;
|
||||||
extern unsigned int configInterpolationMode;
|
extern unsigned int configInterpolationMode;
|
||||||
|
extern bool configSingleplayerPause;
|
||||||
|
|
||||||
void configfile_load(const char *filename);
|
void configfile_load(const char *filename);
|
||||||
void configfile_save(const char *filename);
|
void configfile_save(const char *filename);
|
||||||
|
|
|
@ -5,35 +5,30 @@
|
||||||
|
|
||||||
#ifdef DEVELOPMENT
|
#ifdef DEVELOPMENT
|
||||||
void djui_panel_options_debug_create(struct DjuiBase* caller) {
|
void djui_panel_options_debug_create(struct DjuiBase* caller) {
|
||||||
f32 bodyHeight = 32 * 4 + 64 * 1 + 16 * 1;
|
f32 bodyHeight = 32 * 3 + 64 * 1 + 16 * 1;
|
||||||
|
|
||||||
struct DjuiBase* defaultBase = NULL;
|
struct DjuiBase* defaultBase = NULL;
|
||||||
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\D\\#1be700\\E\\#00b3ff\\B\\#ffef00\\U\\#ff0800\\G");
|
struct DjuiThreePanel* panel = djui_panel_menu_create(bodyHeight, "\\#ff0800\\D\\#1be700\\E\\#00b3ff\\B\\#ffef00\\U\\#ff0800\\G");
|
||||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||||
|
|
||||||
{
|
{
|
||||||
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(&body->base, "Disable Development Pause", &configDisableDevPause);
|
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(&body->base, "Fixed Collisions", (bool*)&gLevelValues.fixCollisionBugs);
|
||||||
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||||
djui_base_set_size(&checkbox1->base, 1.0f, 32);
|
djui_base_set_size(&checkbox1->base, 1.0f, 32);
|
||||||
defaultBase = &checkbox1->base;
|
defaultBase = &checkbox1->base;
|
||||||
|
|
||||||
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(&body->base, "Fixed Collisions", (bool*)&gLevelValues.fixCollisionBugs);
|
#ifdef LUA_PROFILER
|
||||||
|
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(&body->base, "Lua Profiler", &configLuaProfiler);
|
||||||
djui_base_set_size_type(&checkbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
djui_base_set_size_type(&checkbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||||
djui_base_set_size(&checkbox2->base, 1.0f, 32);
|
djui_base_set_size(&checkbox2->base, 1.0f, 32);
|
||||||
defaultBase = &checkbox2->base;
|
defaultBase = &checkbox2->base;
|
||||||
|
|
||||||
#ifdef LUA_PROFILER
|
|
||||||
struct DjuiCheckbox* checkbox3 = djui_checkbox_create(&body->base, "Lua Profiler", &configLuaProfiler);
|
|
||||||
djui_base_set_size_type(&checkbox3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
|
||||||
djui_base_set_size(&checkbox3->base, 1.0f, 32);
|
|
||||||
defaultBase = &checkbox3->base;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct DjuiButton* button2 = djui_button_create(&body->base, "Back");
|
struct DjuiButton* button1 = djui_button_create(&body->base, "Back");
|
||||||
djui_base_set_size_type(&button2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||||
djui_base_set_size(&button2->base, 1.0f, 64);
|
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||||
djui_button_set_style(button2, 1);
|
djui_button_set_style(button1, 1);
|
||||||
djui_interactable_hook_click(&button2->base, djui_panel_menu_back);
|
djui_interactable_hook_click(&button1->base, djui_panel_menu_back);
|
||||||
}
|
}
|
||||||
|
|
||||||
djui_panel_add(caller, &panel->base, defaultBase);
|
djui_panel_add(caller, &panel->base, defaultBase);
|
||||||
|
@ -42,9 +37,9 @@ void djui_panel_options_debug_create(struct DjuiBase* caller) {
|
||||||
|
|
||||||
void djui_panel_misc_create(struct DjuiBase* caller) {
|
void djui_panel_misc_create(struct DjuiBase* caller) {
|
||||||
#ifdef DEVELOPMENT
|
#ifdef DEVELOPMENT
|
||||||
f32 bodyHeight = 64 * 3 + 16 * 2;
|
f32 bodyHeight = 64 * 4 + 16 * 3;
|
||||||
#else
|
#else
|
||||||
f32 bodyHeight = 64 * 2 + 16 * 1;
|
f32 bodyHeight = 64 * 3 + 16 * 2;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct DjuiBase* defaultBase = NULL;
|
struct DjuiBase* defaultBase = NULL;
|
||||||
|
@ -52,11 +47,15 @@ void djui_panel_misc_create(struct DjuiBase* caller) {
|
||||||
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
struct DjuiFlowLayout* body = (struct DjuiFlowLayout*)djui_three_panel_get_body(panel);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(&body->base, "Pause In Singleplayer", &configSingleplayerPause);
|
||||||
|
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||||
|
djui_base_set_size(&checkbox1->base, 1.0f, 32);
|
||||||
|
defaultBase = &checkbox1->base;
|
||||||
|
|
||||||
struct DjuiButton* button1 = djui_button_create(&body->base, "Menu Options");
|
struct DjuiButton* button1 = djui_button_create(&body->base, "Menu Options");
|
||||||
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
djui_base_set_size_type(&button1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||||
djui_base_set_size(&button1->base, 1.0f, 64);
|
djui_base_set_size(&button1->base, 1.0f, 64);
|
||||||
djui_interactable_hook_click(&button1->base, djui_panel_main_menu_create);
|
djui_interactable_hook_click(&button1->base, djui_panel_main_menu_create);
|
||||||
defaultBase = &button1->base;
|
|
||||||
|
|
||||||
#ifdef DEVELOPMENT
|
#ifdef DEVELOPMENT
|
||||||
struct DjuiButton* button2 = djui_button_create(&body->base, "Debug");
|
struct DjuiButton* button2 = djui_button_create(&body->base, "Debug");
|
||||||
|
|
|
@ -208,7 +208,7 @@ static struct LuaObjectField sBehaviorTrajectoriesFields[LUA_BEHAVIOR_TRAJECTORI
|
||||||
{ "UnagiTrajectory", LVT_TRAJECTORY_P, offsetof(struct BehaviorTrajectories, UnagiTrajectory), false, LOT_POINTER },
|
{ "UnagiTrajectory", LVT_TRAJECTORY_P, offsetof(struct BehaviorTrajectories, UnagiTrajectory), false, LOT_POINTER },
|
||||||
};
|
};
|
||||||
|
|
||||||
#define LUA_BEHAVIOR_VALUES_FIELD_COUNT 26
|
#define LUA_BEHAVIOR_VALUES_FIELD_COUNT 27
|
||||||
static struct LuaObjectField sBehaviorValuesFields[LUA_BEHAVIOR_VALUES_FIELD_COUNT] = {
|
static struct LuaObjectField sBehaviorValuesFields[LUA_BEHAVIOR_VALUES_FIELD_COUNT] = {
|
||||||
{ "BowlingBallBob2Speed", LVT_F32, offsetof(struct BehaviorValues, BowlingBallBob2Speed), false, LOT_NONE },
|
{ "BowlingBallBob2Speed", LVT_F32, offsetof(struct BehaviorValues, BowlingBallBob2Speed), false, LOT_NONE },
|
||||||
{ "BowlingBallBobSpeed", LVT_F32, offsetof(struct BehaviorValues, BowlingBallBobSpeed), false, LOT_NONE },
|
{ "BowlingBallBobSpeed", LVT_F32, offsetof(struct BehaviorValues, BowlingBallBobSpeed), false, LOT_NONE },
|
||||||
|
@ -229,6 +229,7 @@ static struct LuaObjectField sBehaviorValuesFields[LUA_BEHAVIOR_VALUES_FIELD_COU
|
||||||
{ "RacingPenguinBigRadius", LVT_F32, offsetof(struct BehaviorValues, RacingPenguinBigRadius), false, LOT_NONE },
|
{ "RacingPenguinBigRadius", LVT_F32, offsetof(struct BehaviorValues, RacingPenguinBigRadius), false, LOT_NONE },
|
||||||
{ "RacingPenguinHeight", LVT_F32, offsetof(struct BehaviorValues, RacingPenguinHeight), false, LOT_NONE },
|
{ "RacingPenguinHeight", LVT_F32, offsetof(struct BehaviorValues, RacingPenguinHeight), false, LOT_NONE },
|
||||||
{ "RacingPenguinRadius", LVT_F32, offsetof(struct BehaviorValues, RacingPenguinRadius), false, LOT_NONE },
|
{ "RacingPenguinRadius", LVT_F32, offsetof(struct BehaviorValues, RacingPenguinRadius), false, LOT_NONE },
|
||||||
|
{ "RespawnShellBoxes", LVT_U8, offsetof(struct BehaviorValues, RespawnShellBoxes), false, LOT_NONE },
|
||||||
{ "ShowStarMilestones", LVT_U8, offsetof(struct BehaviorValues, ShowStarMilestones), false, LOT_NONE },
|
{ "ShowStarMilestones", LVT_U8, offsetof(struct BehaviorValues, ShowStarMilestones), false, LOT_NONE },
|
||||||
{ "ToadStar1Requirement", LVT_U16, offsetof(struct BehaviorValues, ToadStar1Requirement), false, LOT_NONE },
|
{ "ToadStar1Requirement", LVT_U16, offsetof(struct BehaviorValues, ToadStar1Requirement), false, LOT_NONE },
|
||||||
{ "ToadStar2Requirement", LVT_U16, offsetof(struct BehaviorValues, ToadStar2Requirement), false, LOT_NONE },
|
{ "ToadStar2Requirement", LVT_U16, offsetof(struct BehaviorValues, ToadStar2Requirement), false, LOT_NONE },
|
||||||
|
@ -726,7 +727,7 @@ static struct LuaObjectField sLakituStateFields[LUA_LAKITU_STATE_FIELD_COUNT] =
|
||||||
{ "yaw", LVT_S16, offsetof(struct LakituState, yaw), false, LOT_NONE },
|
{ "yaw", LVT_S16, offsetof(struct LakituState, yaw), false, LOT_NONE },
|
||||||
};
|
};
|
||||||
|
|
||||||
#define LUA_LEVEL_VALUES_FIELD_COUNT 25
|
#define LUA_LEVEL_VALUES_FIELD_COUNT 26
|
||||||
static struct LuaObjectField sLevelValuesFields[LUA_LEVEL_VALUES_FIELD_COUNT] = {
|
static struct LuaObjectField sLevelValuesFields[LUA_LEVEL_VALUES_FIELD_COUNT] = {
|
||||||
{ "cellHeightLimit", LVT_S16, offsetof(struct LevelValues, cellHeightLimit), false, LOT_NONE },
|
{ "cellHeightLimit", LVT_S16, offsetof(struct LevelValues, cellHeightLimit), false, LOT_NONE },
|
||||||
{ "coinsRequiredForCoinStar", LVT_S16, offsetof(struct LevelValues, coinsRequiredForCoinStar), false, LOT_NONE },
|
{ "coinsRequiredForCoinStar", LVT_S16, offsetof(struct LevelValues, coinsRequiredForCoinStar), false, LOT_NONE },
|
||||||
|
@ -742,6 +743,7 @@ static struct LuaObjectField sLevelValuesFields[LUA_LEVEL_VALUES_FIELD_COUNT] =
|
||||||
{ "floorLowerLimitShadow", LVT_S16, offsetof(struct LevelValues, floorLowerLimitShadow), false, LOT_NONE },
|
{ "floorLowerLimitShadow", LVT_S16, offsetof(struct LevelValues, floorLowerLimitShadow), false, LOT_NONE },
|
||||||
{ "metalCapDuration", LVT_U16, offsetof(struct LevelValues, metalCapDuration), false, LOT_NONE },
|
{ "metalCapDuration", LVT_U16, offsetof(struct LevelValues, metalCapDuration), false, LOT_NONE },
|
||||||
{ "metalCapDurationCotmc", LVT_U16, offsetof(struct LevelValues, metalCapDurationCotmc), false, LOT_NONE },
|
{ "metalCapDurationCotmc", LVT_U16, offsetof(struct LevelValues, metalCapDurationCotmc), false, LOT_NONE },
|
||||||
|
{ "pauseExitAnywhere", LVT_BOOL, offsetof(struct LevelValues, pauseExitAnywhere), false, LOT_NONE },
|
||||||
{ "metalCapSequence", LVT_U8, offsetof(struct LevelValues, metalCapSequence), false, LOT_NONE },
|
{ "metalCapSequence", LVT_U8, offsetof(struct LevelValues, metalCapSequence), false, LOT_NONE },
|
||||||
{ "pssSlideStarIndex", LVT_U8, offsetof(struct LevelValues, pssSlideStarIndex), false, LOT_NONE },
|
{ "pssSlideStarIndex", LVT_U8, offsetof(struct LevelValues, pssSlideStarIndex), false, LOT_NONE },
|
||||||
{ "pssSlideStarTime", LVT_U16, offsetof(struct LevelValues, pssSlideStarTime), false, LOT_NONE },
|
{ "pssSlideStarTime", LVT_U16, offsetof(struct LevelValues, pssSlideStarTime), false, LOT_NONE },
|
||||||
|
|
|
@ -22252,6 +22252,22 @@ int smlua_func_cur_obj_set_behavior(lua_State* L) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int smlua_func_cur_obj_set_billboard_if_vanilla_cam(UNUSED lua_State* L) {
|
||||||
|
if (L == NULL) { return 0; }
|
||||||
|
|
||||||
|
int top = lua_gettop(L);
|
||||||
|
if (top != 0) {
|
||||||
|
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "cur_obj_set_billboard_if_vanilla_cam", 0, top);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern void cur_obj_set_billboard_if_vanilla_cam(void);
|
||||||
|
cur_obj_set_billboard_if_vanilla_cam();
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int smlua_func_cur_obj_set_direction_table(lua_State* L) {
|
int smlua_func_cur_obj_set_direction_table(lua_State* L) {
|
||||||
if (L == NULL) { return 0; }
|
if (L == NULL) { return 0; }
|
||||||
|
|
||||||
|
@ -29874,6 +29890,7 @@ void smlua_bind_functions_autogen(void) {
|
||||||
smlua_bind_function(L, "cur_obj_scale", smlua_func_cur_obj_scale);
|
smlua_bind_function(L, "cur_obj_scale", smlua_func_cur_obj_scale);
|
||||||
smlua_bind_function(L, "cur_obj_scale_over_time", smlua_func_cur_obj_scale_over_time);
|
smlua_bind_function(L, "cur_obj_scale_over_time", smlua_func_cur_obj_scale_over_time);
|
||||||
smlua_bind_function(L, "cur_obj_set_behavior", smlua_func_cur_obj_set_behavior);
|
smlua_bind_function(L, "cur_obj_set_behavior", smlua_func_cur_obj_set_behavior);
|
||||||
|
smlua_bind_function(L, "cur_obj_set_billboard_if_vanilla_cam", smlua_func_cur_obj_set_billboard_if_vanilla_cam);
|
||||||
smlua_bind_function(L, "cur_obj_set_direction_table", smlua_func_cur_obj_set_direction_table);
|
smlua_bind_function(L, "cur_obj_set_direction_table", smlua_func_cur_obj_set_direction_table);
|
||||||
smlua_bind_function(L, "cur_obj_set_face_angle_to_move_angle", smlua_func_cur_obj_set_face_angle_to_move_angle);
|
smlua_bind_function(L, "cur_obj_set_face_angle_to_move_angle", smlua_func_cur_obj_set_face_angle_to_move_angle);
|
||||||
smlua_bind_function(L, "cur_obj_set_hitbox_and_die_if_attacked", smlua_func_cur_obj_set_hitbox_and_die_if_attacked);
|
smlua_bind_function(L, "cur_obj_set_hitbox_and_die_if_attacked", smlua_func_cur_obj_set_hitbox_and_die_if_attacked);
|
||||||
|
|
Loading…
Reference in a new issue