mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2026-05-10 19:01:46 +00:00
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
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:
parent
a87e67d7ac
commit
793196d581
9 changed files with 33 additions and 7 deletions
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 />
|
||||
|
|
|
|||
|
|
@ -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` | |
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue