mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2025-10-30 08:01:01 +00:00
ACTIVE_FLAG_DORMANT (#281)
This commit is contained in:
parent
3f7f5da50e
commit
3bc0b13e20
8 changed files with 19 additions and 5 deletions
|
|
@ -4739,6 +4739,9 @@ ACTIVE_FLAG_DEACTIVATED = 0
|
||||||
--- @type integer
|
--- @type integer
|
||||||
ACTIVE_FLAG_DITHERED_ALPHA = (1 << 7)
|
ACTIVE_FLAG_DITHERED_ALPHA = (1 << 7)
|
||||||
|
|
||||||
|
--- @type integer
|
||||||
|
ACTIVE_FLAG_DORMANT = (1 << 11)
|
||||||
|
|
||||||
--- @type integer
|
--- @type integer
|
||||||
ACTIVE_FLAG_FAR_AWAY = (1 << 1)
|
ACTIVE_FLAG_FAR_AWAY = (1 << 1)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -658,6 +658,7 @@
|
||||||
--- @field public vanishCapSequence integer
|
--- @field public vanishCapSequence integer
|
||||||
--- @field public wingCapDuration integer
|
--- @field public wingCapDuration integer
|
||||||
--- @field public wingCapDurationTotwc integer
|
--- @field public wingCapDurationTotwc integer
|
||||||
|
--- @field public wingCapLookUpReq integer
|
||||||
--- @field public wingCapSequence integer
|
--- @field public wingCapSequence integer
|
||||||
|
|
||||||
--- @class LinearTransitionPoint
|
--- @class LinearTransitionPoint
|
||||||
|
|
@ -759,7 +760,6 @@
|
||||||
--- @field public unkC4 number
|
--- @field public unkC4 number
|
||||||
--- @field public usedObj Object
|
--- @field public usedObj Object
|
||||||
--- @field public vel Vec3f
|
--- @field public vel Vec3f
|
||||||
--- @field public visibleToEnemies integer
|
|
||||||
--- @field public wall Surface
|
--- @field public wall Surface
|
||||||
--- @field public wallKickTimer integer
|
--- @field public wallKickTimer integer
|
||||||
--- @field public wallNormal Vec3f
|
--- @field public wallNormal Vec3f
|
||||||
|
|
|
||||||
|
|
@ -1697,6 +1697,7 @@
|
||||||
- ACTIVE_FLAG_ACTIVE
|
- ACTIVE_FLAG_ACTIVE
|
||||||
- ACTIVE_FLAG_DEACTIVATED
|
- ACTIVE_FLAG_DEACTIVATED
|
||||||
- ACTIVE_FLAG_DITHERED_ALPHA
|
- ACTIVE_FLAG_DITHERED_ALPHA
|
||||||
|
- ACTIVE_FLAG_DORMANT
|
||||||
- ACTIVE_FLAG_FAR_AWAY
|
- ACTIVE_FLAG_FAR_AWAY
|
||||||
- ACTIVE_FLAG_INITIATED_TIME_STOP
|
- ACTIVE_FLAG_INITIATED_TIME_STOP
|
||||||
- ACTIVE_FLAG_IN_DIFFERENT_ROOM
|
- ACTIVE_FLAG_IN_DIFFERENT_ROOM
|
||||||
|
|
|
||||||
|
|
@ -956,6 +956,7 @@
|
||||||
| vanishCapSequence | `integer` | |
|
| vanishCapSequence | `integer` | |
|
||||||
| wingCapDuration | `integer` | |
|
| wingCapDuration | `integer` | |
|
||||||
| wingCapDurationTotwc | `integer` | |
|
| wingCapDurationTotwc | `integer` | |
|
||||||
|
| wingCapLookUpReq | `integer` | |
|
||||||
| wingCapSequence | `integer` | |
|
| wingCapSequence | `integer` | |
|
||||||
|
|
||||||
[:arrow_up_small:](#)
|
[:arrow_up_small:](#)
|
||||||
|
|
@ -1085,7 +1086,6 @@
|
||||||
| unkC4 | `number` | |
|
| unkC4 | `number` | |
|
||||||
| usedObj | [Object](structs.md#Object) | |
|
| usedObj | [Object](structs.md#Object) | |
|
||||||
| vel | [Vec3f](structs.md#Vec3f) | read-only |
|
| vel | [Vec3f](structs.md#Vec3f) | read-only |
|
||||||
| visibleToEnemies | `integer` | |
|
|
||||||
| wall | [Surface](structs.md#Surface) | |
|
| wall | [Surface](structs.md#Surface) | |
|
||||||
| wallKickTimer | `integer` | |
|
| wallKickTimer | `integer` | |
|
||||||
| wallNormal | [Vec3f](structs.md#Vec3f) | read-only |
|
| wallNormal | [Vec3f](structs.md#Vec3f) | read-only |
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
#define ACTIVE_FLAG_UNK8 (1 << 8) // 0x0100
|
#define ACTIVE_FLAG_UNK8 (1 << 8) // 0x0100
|
||||||
#define ACTIVE_FLAG_UNK9 (1 << 9) // 0x0200
|
#define ACTIVE_FLAG_UNK9 (1 << 9) // 0x0200
|
||||||
#define ACTIVE_FLAG_UNK10 (1 << 10) // 0x0400
|
#define ACTIVE_FLAG_UNK10 (1 << 10) // 0x0400
|
||||||
|
#define ACTIVE_FLAG_DORMANT (1 << 11) // 0x0800
|
||||||
|
|
||||||
|
|
||||||
/* respawnInfoType */
|
/* respawnInfoType */
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
#include "pc/lua/smlua_hooks.h"
|
#include "pc/lua/smlua_hooks.h"
|
||||||
#include "pc/lua/smlua_utils.h"
|
#include "pc/lua/smlua_utils.h"
|
||||||
#include "game/rng_position.h"
|
#include "game/rng_position.h"
|
||||||
|
#include "game/interaction.h"
|
||||||
|
|
||||||
// Macros for retrieving arguments from behavior scripts.
|
// Macros for retrieving arguments from behavior scripts.
|
||||||
#define BHV_CMD_GET_1ST_U8(index) (u8)((gCurBhvCommand[index] >> 24) & 0xFF) // unused
|
#define BHV_CMD_GET_1ST_U8(index) (u8)((gCurBhvCommand[index] >> 24) & 0xFF) // unused
|
||||||
|
|
@ -1260,6 +1261,13 @@ static BhvCommandProc BehaviorCmdTable[] = {
|
||||||
|
|
||||||
// Execute the behavior script of the current object, process the object flags, and other miscellaneous code for updating objects.
|
// Execute the behavior script of the current object, process the object flags, and other miscellaneous code for updating objects.
|
||||||
void cur_obj_update(void) {
|
void cur_obj_update(void) {
|
||||||
|
// Don't update if dormant
|
||||||
|
if (gCurrentObject->activeFlags & ACTIVE_FLAG_DORMANT) {
|
||||||
|
gCurrentObject->header.gfx.node.flags &= ~GRAPH_RENDER_ACTIVE;
|
||||||
|
gCurrentObject->oInteractStatus = INT_STATUS_INTERACTED;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// handle network area timer
|
// handle network area timer
|
||||||
if (gCurrentObject->areaTimerType != AREA_TIMER_TYPE_NONE) {
|
if (gCurrentObject->areaTimerType != AREA_TIMER_TYPE_NONE) {
|
||||||
// make sure the area is valid
|
// make sure the area is valid
|
||||||
|
|
|
||||||
|
|
@ -733,7 +733,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 26
|
#define LUA_LEVEL_VALUES_FIELD_COUNT 27
|
||||||
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 },
|
||||||
|
|
@ -760,6 +760,7 @@ static struct LuaObjectField sLevelValuesFields[LUA_LEVEL_VALUES_FIELD_COUNT] =
|
||||||
{ "vanishCapSequence", LVT_U8, offsetof(struct LevelValues, vanishCapSequence), false, LOT_NONE },
|
{ "vanishCapSequence", LVT_U8, offsetof(struct LevelValues, vanishCapSequence), false, LOT_NONE },
|
||||||
{ "wingCapDuration", LVT_U16, offsetof(struct LevelValues, wingCapDuration), false, LOT_NONE },
|
{ "wingCapDuration", LVT_U16, offsetof(struct LevelValues, wingCapDuration), false, LOT_NONE },
|
||||||
{ "wingCapDurationTotwc", LVT_U16, offsetof(struct LevelValues, wingCapDurationTotwc), false, LOT_NONE },
|
{ "wingCapDurationTotwc", LVT_U16, offsetof(struct LevelValues, wingCapDurationTotwc), false, LOT_NONE },
|
||||||
|
{ "wingCapLookUpReq", LVT_U8, offsetof(struct LevelValues, wingCapLookUpReq), false, LOT_NONE },
|
||||||
{ "wingCapSequence", LVT_U8, offsetof(struct LevelValues, wingCapSequence), false, LOT_NONE },
|
{ "wingCapSequence", LVT_U8, offsetof(struct LevelValues, wingCapSequence), false, LOT_NONE },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -799,7 +800,7 @@ static struct LuaObjectField sMarioBodyStateFields[LUA_MARIO_BODY_STATE_FIELD_CO
|
||||||
{ "wingFlutter", LVT_S8, offsetof(struct MarioBodyState, wingFlutter), false, LOT_NONE },
|
{ "wingFlutter", LVT_S8, offsetof(struct MarioBodyState, wingFlutter), false, LOT_NONE },
|
||||||
};
|
};
|
||||||
|
|
||||||
#define LUA_MARIO_STATE_FIELD_COUNT 77
|
#define LUA_MARIO_STATE_FIELD_COUNT 76
|
||||||
static struct LuaObjectField sMarioStateFields[LUA_MARIO_STATE_FIELD_COUNT] = {
|
static struct LuaObjectField sMarioStateFields[LUA_MARIO_STATE_FIELD_COUNT] = {
|
||||||
{ "action", LVT_U32, offsetof(struct MarioState, action), false, LOT_NONE },
|
{ "action", LVT_U32, offsetof(struct MarioState, action), false, LOT_NONE },
|
||||||
{ "actionArg", LVT_U32, offsetof(struct MarioState, actionArg), false, LOT_NONE },
|
{ "actionArg", LVT_U32, offsetof(struct MarioState, actionArg), false, LOT_NONE },
|
||||||
|
|
@ -872,7 +873,6 @@ static struct LuaObjectField sMarioStateFields[LUA_MARIO_STATE_FIELD_COUNT] = {
|
||||||
{ "unkC4", LVT_F32, offsetof(struct MarioState, unkC4), false, LOT_NONE },
|
{ "unkC4", LVT_F32, offsetof(struct MarioState, unkC4), false, LOT_NONE },
|
||||||
{ "usedObj", LVT_COBJECT_P, offsetof(struct MarioState, usedObj), false, LOT_OBJECT },
|
{ "usedObj", LVT_COBJECT_P, offsetof(struct MarioState, usedObj), false, LOT_OBJECT },
|
||||||
{ "vel", LVT_COBJECT, offsetof(struct MarioState, vel), true, LOT_VEC3F },
|
{ "vel", LVT_COBJECT, offsetof(struct MarioState, vel), true, LOT_VEC3F },
|
||||||
{ "visibleToEnemies", LVT_U8, offsetof(struct MarioState, visibleToEnemies), false, LOT_NONE },
|
|
||||||
{ "wall", LVT_COBJECT_P, offsetof(struct MarioState, wall), false, LOT_SURFACE },
|
{ "wall", LVT_COBJECT_P, offsetof(struct MarioState, wall), false, LOT_SURFACE },
|
||||||
{ "wallKickTimer", LVT_U8, offsetof(struct MarioState, wallKickTimer), false, LOT_NONE },
|
{ "wallKickTimer", LVT_U8, offsetof(struct MarioState, wallKickTimer), false, LOT_NONE },
|
||||||
{ "wallNormal", LVT_COBJECT, offsetof(struct MarioState, wallNormal), true, LOT_VEC3F },
|
{ "wallNormal", LVT_COBJECT, offsetof(struct MarioState, wallNormal), true, LOT_VEC3F },
|
||||||
|
|
|
||||||
|
|
@ -1768,6 +1768,7 @@ char gSmluaConstants[] = ""
|
||||||
"ACTIVE_FLAG_UNK8 = (1 << 8)\n"
|
"ACTIVE_FLAG_UNK8 = (1 << 8)\n"
|
||||||
"ACTIVE_FLAG_UNK9 = (1 << 9)\n"
|
"ACTIVE_FLAG_UNK9 = (1 << 9)\n"
|
||||||
"ACTIVE_FLAG_UNK10 = (1 << 10)\n"
|
"ACTIVE_FLAG_UNK10 = (1 << 10)\n"
|
||||||
|
"ACTIVE_FLAG_DORMANT = (1 << 11)\n"
|
||||||
"RESPAWN_INFO_TYPE_NULL = 0\n"
|
"RESPAWN_INFO_TYPE_NULL = 0\n"
|
||||||
"RESPAWN_INFO_TYPE_32 = 1\n"
|
"RESPAWN_INFO_TYPE_32 = 1\n"
|
||||||
"RESPAWN_INFO_TYPE_16 = 2\n"
|
"RESPAWN_INFO_TYPE_16 = 2\n"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue