add stayInLevelAfterStar constants (#1210)
Some checks failed
Build coop / build-linux (push) Has been cancelled
Build coop / build-steamos (push) Has been cancelled
Build coop / build-windows-opengl (push) Has been cancelled
Build coop / build-windows-directx (push) Has been cancelled
Build coop / build-macos-arm (push) Has been cancelled
Build coop / build-macos-intel (push) Has been cancelled

This commit is contained in:
Blockyyy 2026-04-30 04:24:57 +02:00 committed by GitHub
parent a87e67d7ac
commit 793196d581
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 33 additions and 7 deletions

View file

@ -4751,6 +4751,15 @@ PLAYER_PVP_REVAMPED = 1 --- @type PvpType
--- | `PLAYER_PVP_CLASSIC`
--- | `PLAYER_PVP_REVAMPED`
STAR_LEAVE_LEVEL = 0 --- @type StarExitType
STAR_STAY_IN_LEVEL = 1 --- @type StarExitType
STAR_NON_STOP = 2 --- @type StarExitType
--- @alias StarExitType
--- | `STAR_LEAVE_LEVEL`
--- | `STAR_STAY_IN_LEVEL`
--- | `STAR_NON_STOP`
--- @type integer
UNKNOWN_LOCAL_INDEX = (-1)

View file

@ -2158,8 +2158,8 @@
--- @field public playerInteractions PlayerInteractions
--- @field public bouncyLevelBounds BouncyLevelBounds
--- @field public pvpType PvpType
--- @field public stayInLevelAfterStar StarExitType
--- @field public playerKnockbackStrength integer
--- @field public stayInLevelAfterStar integer
--- @field public skipIntro integer
--- @field public bubbleDeath integer
--- @field public enablePlayersInLevelDisplay integer

View file

@ -62,6 +62,7 @@
- [enum PlayerInteractions](#enum-PlayerInteractions)
- [enum BouncyLevelBounds](#enum-BouncyLevelBounds)
- [enum PvpType](#enum-PvpType)
- [enum StarExitType](#enum-StarExitType)
- [network_player.h](#network_playerh)
- [enum NetworkPlayerType](#enum-NetworkPlayerType)
- [obj_behaviors.c](#obj_behaviorsc)
@ -2234,6 +2235,13 @@
| PLAYER_PVP_CLASSIC | 0 |
| PLAYER_PVP_REVAMPED | 1 |
### [enum StarExitType](#StarExitType)
| Identifier | Value |
| :--------- | :---- |
| STAR_LEAVE_LEVEL | 0 |
| STAR_STAY_IN_LEVEL | 1 |
| STAR_NON_STOP | 2 |
[:arrow_up_small:](#)
<br />

View file

@ -2826,8 +2826,8 @@
| playerInteractions | [enum PlayerInteractions](constants.md#enum-PlayerInteractions) | |
| bouncyLevelBounds | [enum BouncyLevelBounds](constants.md#enum-BouncyLevelBounds) | |
| pvpType | [enum PvpType](constants.md#enum-PvpType) | |
| stayInLevelAfterStar | [enum StarExitType](constants.md#enum-StarExitType) | |
| playerKnockbackStrength | `integer` | |
| stayInLevelAfterStar | `integer` | |
| skipIntro | `integer` | |
| bubbleDeath | `integer` | |
| enablePlayersInLevelDisplay | `integer` | |

View file

@ -941,7 +941,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O
if (m->health >= 0x100) {
if (gServerSettings.stayInLevelAfterStar != 2) {
if (gServerSettings.stayInLevelAfterStar != STAR_NON_STOP) {
mario_stop_riding_and_holding(m);
}
@ -1015,7 +1015,7 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O
}
save_file_do_save(gCurrSaveFileNum - 1, TRUE);
if (noExit && gServerSettings.stayInLevelAfterStar == 2) {
if (noExit && gServerSettings.stayInLevelAfterStar == STAR_NON_STOP) {
return TRUE;
}

View file

@ -1144,7 +1144,7 @@ void update_hud_values(void) {
gHudDisplay.coins += 1;
play_sound(coinSound, gMarioState->marioObj->header.gfx.cameraToObject);
if (gServerSettings.stayInLevelAfterStar > 0 && gCurrCourseNum != COURSE_NONE) {
if (gServerSettings.stayInLevelAfterStar > STAR_LEAVE_LEVEL && gCurrCourseNum != COURSE_NONE) {
// retain vanilla behavior
if (gLevelValues.numCoinsToLife == 50) {
if (gHudDisplay.coins == 50 || gHudDisplay.coins == 100 || gHudDisplay.coins == 150) {

View file

@ -2500,7 +2500,7 @@ static struct LuaObjectField sServerSettingsFields[LUA_SERVER_SETTINGS_FIELD_COU
{ "playerKnockbackStrength", LVT_U8, offsetof(struct ServerSettings, playerKnockbackStrength), false, LOT_NONE, 1, sizeof(u8) },
{ "pvpType", LVT_S32, offsetof(struct ServerSettings, pvpType), false, LOT_NONE, 1, sizeof(enum PvpType) },
{ "skipIntro", LVT_U8, offsetof(struct ServerSettings, skipIntro), false, LOT_NONE, 1, sizeof(u8) },
{ "stayInLevelAfterStar", LVT_U8, offsetof(struct ServerSettings, stayInLevelAfterStar), false, LOT_NONE, 1, sizeof(u8) },
{ "stayInLevelAfterStar", LVT_S32, offsetof(struct ServerSettings, stayInLevelAfterStar), false, LOT_NONE, 1, sizeof(enum StarExitType) },
};
#define LUA_SPAWN_INFO_FIELD_COUNT 8

View file

@ -2337,6 +2337,9 @@ char gSmluaConstants[] = ""
"BOUNCY_LEVEL_BOUNDS_ON_CAP=2\n"
"PLAYER_PVP_CLASSIC=0\n"
"PLAYER_PVP_REVAMPED=1\n"
"STAR_LEAVE_LEVEL=0\n"
"STAR_STAY_IN_LEVEL=1\n"
"STAR_NON_STOP=2\n"
"UNKNOWN_LOCAL_INDEX=(-1)\n"
"UNKNOWN_GLOBAL_INDEX=(-1)\n"
"UNKNOWN_NETWORK_INDEX=(-1)\n"

View file

@ -74,12 +74,18 @@ enum PvpType {
PLAYER_PVP_REVAMPED
};
enum StarExitType {
STAR_LEAVE_LEVEL,
STAR_STAY_IN_LEVEL,
STAR_NON_STOP,
};
struct ServerSettings {
enum PlayerInteractions playerInteractions;
enum BouncyLevelBounds bouncyLevelBounds;
enum PvpType pvpType;
enum StarExitType stayInLevelAfterStar;
u8 playerKnockbackStrength;
u8 stayInLevelAfterStar;
u8 skipIntro;
u8 bubbleDeath;
u8 enablePlayersInLevelDisplay;