mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-12-31 20:11:27 +00:00
Added HOOK_ON_INTERACT to Lua API
This commit is contained in:
parent
1ea28b9c5a
commit
e536d140bb
10 changed files with 230 additions and 43 deletions
|
@ -17,6 +17,7 @@ in_files = [
|
|||
"src/pc/network/network_player.h",
|
||||
"include/PR/os_cont.h",
|
||||
"src/game/interaction.c",
|
||||
"src/game/interaction.h",
|
||||
"src/pc/djui/djui_hud_utils.h",
|
||||
]
|
||||
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
- [HudUtilsResolution](#HudUtilsResolution)
|
||||
- [interaction.c](#interaction.c)
|
||||
- [InteractionFlag](#InteractionFlag)
|
||||
- [interaction.h](#interaction.h)
|
||||
- [InteractionType](#InteractionType)
|
||||
- [mario_animation_ids.h](#mario_animation_ids.h)
|
||||
- [MarioAnimID](#MarioAnimID)
|
||||
- [network_player.h](#network_player.h)
|
||||
|
@ -784,6 +786,84 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [interaction.h](#interaction.h)
|
||||
- ATTACK_FAST_ATTACK
|
||||
- ATTACK_FROM_ABOVE
|
||||
- ATTACK_FROM_BELOW
|
||||
- ATTACK_GROUND_POUND_OR_TWIRL
|
||||
- ATTACK_KICK_OR_TRIP
|
||||
- ATTACK_PUNCH
|
||||
- INT_STATUS_ATTACKED_MARIO
|
||||
- INT_STATUS_ATTACK_MASK
|
||||
- INT_STATUS_GRABBED_MARIO
|
||||
- INT_STATUS_HIT_MINE
|
||||
- INT_STATUS_HOOT_GRABBED_BY_MARIO
|
||||
- INT_STATUS_INTERACTED
|
||||
- INT_STATUS_MARIO_DROP_OBJECT
|
||||
- INT_STATUS_MARIO_UNK1
|
||||
- INT_STATUS_MARIO_UNK2
|
||||
- INT_STATUS_MARIO_UNK4
|
||||
- INT_STATUS_MARIO_UNK5
|
||||
- INT_STATUS_MARIO_UNK6
|
||||
- INT_STATUS_MARIO_UNK7
|
||||
- INT_STATUS_STOP_RIDING
|
||||
- INT_STATUS_TOUCHED_BOB_OMB
|
||||
- INT_STATUS_TRAP_TURN
|
||||
- INT_STATUS_WAS_ATTACKED
|
||||
- INT_SUBTYPE_BIG_KNOCKBACK
|
||||
- INT_SUBTYPE_DELAY_INVINCIBILITY
|
||||
- INT_SUBTYPE_DROP_IMMEDIATELY
|
||||
- INT_SUBTYPE_EATS_MARIO
|
||||
- INT_SUBTYPE_FADING_WARP
|
||||
- INT_SUBTYPE_GRABS_MARIO
|
||||
- INT_SUBTYPE_GRAND_STAR
|
||||
- INT_SUBTYPE_HOLDABLE_NPC
|
||||
- INT_SUBTYPE_KICKABLE
|
||||
- INT_SUBTYPE_NOT_GRABBABLE
|
||||
- INT_SUBTYPE_NO_EXIT
|
||||
- INT_SUBTYPE_NPC
|
||||
- INT_SUBTYPE_SIGN
|
||||
- INT_SUBTYPE_STAR_DOOR
|
||||
- INT_SUBTYPE_TWIRL_BOUNCE
|
||||
|
||||
### [enum InteractionType](#InteractionType)
|
||||
| Identifier | Value |
|
||||
| :--------- | :---- |
|
||||
| INTERACT_HOOT | (1 << 0) |
|
||||
| INTERACT_GRABBABLE | (1 << 1) |
|
||||
| INTERACT_DOOR | (1 << 2) |
|
||||
| INTERACT_DAMAGE | (1 << 3) |
|
||||
| INTERACT_COIN | (1 << 4) |
|
||||
| INTERACT_CAP | (1 << 5) |
|
||||
| INTERACT_POLE | (1 << 6) |
|
||||
| INTERACT_KOOPA | (1 << 7) |
|
||||
| INTERACT_UNKNOWN_08 | (1 << 8) |
|
||||
| INTERACT_BREAKABLE | (1 << 9) |
|
||||
| INTERACT_STRONG_WIND | (1 << 10) |
|
||||
| INTERACT_WARP_DOOR | (1 << 11) |
|
||||
| INTERACT_STAR_OR_KEY | (1 << 12) |
|
||||
| INTERACT_WARP | (1 << 13) |
|
||||
| INTERACT_CANNON_BASE | (1 << 14) |
|
||||
| INTERACT_BOUNCE_TOP | (1 << 15) |
|
||||
| INTERACT_WATER_RING | (1 << 16) |
|
||||
| INTERACT_BULLY | (1 << 17) |
|
||||
| INTERACT_FLAME | (1 << 18) |
|
||||
| INTERACT_KOOPA_SHELL | (1 << 19) |
|
||||
| INTERACT_BOUNCE_TOP2 | (1 << 20) |
|
||||
| INTERACT_MR_BLIZZARD | (1 << 21) |
|
||||
| INTERACT_HIT_FROM_BELOW | (1 << 22) |
|
||||
| INTERACT_TEXT | (1 << 23) |
|
||||
| INTERACT_TORNADO | (1 << 24) |
|
||||
| INTERACT_WHIRLPOOL | (1 << 25) |
|
||||
| INTERACT_CLAM_OR_BUBBA | (1 << 26) |
|
||||
| INTERACT_BBH_ENTRANCE | (1 << 27) |
|
||||
| INTERACT_SNUFIT_BULLET | (1 << 28) |
|
||||
| INTERACT_SHOCK | (1 << 29) |
|
||||
| INTERACT_IGLOO_BARRIER | (1 << 30) |
|
||||
| INTERACT_PLAYER | (1 << 31) |
|
||||
|
||||
<br />
|
||||
|
||||
## [mario_animation_ids.h](#mario_animation_ids.h)
|
||||
|
||||
### [enum MarioAnimID](#MarioAnimID)
|
||||
|
@ -1436,7 +1516,8 @@
|
|||
| HOOK_ON_PLAYER_CONNECTED | 6 |
|
||||
| HOOK_ON_PLAYER_DISCONNECTED | 7 |
|
||||
| HOOK_ON_HUD_RENDER | 8 |
|
||||
| HOOK_MAX | 9 |
|
||||
| HOOK_ON_INTERACT | 9 |
|
||||
| HOOK_MAX | 10 |
|
||||
|
||||
<br />
|
||||
|
||||
|
|
|
@ -120,10 +120,4 @@ function on_hud_render()
|
|||
test_rainbow_text()
|
||||
end
|
||||
|
||||
function on_mario_update(m)
|
||||
if m.action == ACT_JUMP then
|
||||
displaying = true
|
||||
end
|
||||
end
|
||||
|
||||
hook_event(HOOK_ON_HUD_RENDER, on_hud_render)
|
||||
|
|
|
@ -52,6 +52,7 @@ The lua functions sent to `hook_event()` will be automatically called by SM64 wh
|
|||
| HOOK_ON_PVP_ATTACK | Called when one player attacks another | [MarioState](structs.md#MarioState) attacker, [MarioState](structs.md#MarioState) victim |
|
||||
| HOOK_ON_PLAYER_CONNECTED | Called when a player connects | [MarioState](structs.md#MarioState) connector |
|
||||
| HOOK_ON_PLAYER_DISCONNECTED | Called when a player disconnects | [MarioState](structs.md#MarioState) disconnector |
|
||||
| HOOK_ON_INTERACT | Called when mario interacts with an object | [MarioState](structs.md#MarioState) interactor, [Object](structs.md#Object) interactee, [InteractType](constants.md#InteractType) interactType, bool interactValue |
|
||||
|
||||
### Parameters
|
||||
|
||||
|
|
|
@ -285,7 +285,7 @@ struct Character gCharacters[CT_MAX] = {
|
|||
.type = CT_WARIO,
|
||||
.name = "Wario",
|
||||
.hudHead = 'x',
|
||||
.hudHeadTexture = texture_hud_char_wario_head,
|
||||
.hudHeadTexture = { .texture = texture_hud_char_wario_head, .bitSize = 8, .width = 16, .height = 16 },
|
||||
.cameraHudHead = GLYPH_CAM_WARIO_HEAD,
|
||||
.modelId = MODEL_WARIO,
|
||||
.capModelId = MODEL_WARIOS_CAP,
|
||||
|
|
|
@ -2124,7 +2124,10 @@ void mario_process_interactions(struct MarioState *m) {
|
|||
|
||||
if (!(object->oInteractStatus & INT_STATUS_INTERACTED)) {
|
||||
if (sInteractionHandlers[i].handler(m, interactType, object)) {
|
||||
smlua_call_event_hooks_interact_params(HOOK_ON_INTERACT, m, object, interactType, true);
|
||||
break;
|
||||
} else {
|
||||
smlua_call_event_hooks_interact_params(HOOK_ON_INTERACT, m, object, interactType, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,39 +5,40 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#define INTERACT_HOOT /* 0x00000001 */ (1 << 0)
|
||||
#define INTERACT_GRABBABLE /* 0x00000002 */ (1 << 1)
|
||||
#define INTERACT_DOOR /* 0x00000004 */ (1 << 2)
|
||||
#define INTERACT_DAMAGE /* 0x00000008 */ (1 << 3)
|
||||
#define INTERACT_COIN /* 0x00000010 */ (1 << 4)
|
||||
#define INTERACT_CAP /* 0x00000020 */ (1 << 5)
|
||||
#define INTERACT_POLE /* 0x00000040 */ (1 << 6)
|
||||
#define INTERACT_KOOPA /* 0x00000080 */ (1 << 7)
|
||||
#define INTERACT_UNKNOWN_08 /* 0x00000100 */ (1 << 8)
|
||||
#define INTERACT_BREAKABLE /* 0x00000200 */ (1 << 9)
|
||||
#define INTERACT_STRONG_WIND /* 0x00000400 */ (1 << 10)
|
||||
#define INTERACT_WARP_DOOR /* 0x00000800 */ (1 << 11)
|
||||
#define INTERACT_STAR_OR_KEY /* 0x00001000 */ (1 << 12)
|
||||
#define INTERACT_WARP /* 0x00002000 */ (1 << 13)
|
||||
#define INTERACT_CANNON_BASE /* 0x00004000 */ (1 << 14)
|
||||
#define INTERACT_BOUNCE_TOP /* 0x00008000 */ (1 << 15)
|
||||
#define INTERACT_WATER_RING /* 0x00010000 */ (1 << 16)
|
||||
#define INTERACT_BULLY /* 0x00020000 */ (1 << 17)
|
||||
#define INTERACT_FLAME /* 0x00040000 */ (1 << 18)
|
||||
#define INTERACT_KOOPA_SHELL /* 0x00080000 */ (1 << 19)
|
||||
#define INTERACT_BOUNCE_TOP2 /* 0x00100000 */ (1 << 20)
|
||||
#define INTERACT_MR_BLIZZARD /* 0x00200000 */ (1 << 21)
|
||||
#define INTERACT_HIT_FROM_BELOW /* 0x00400000 */ (1 << 22)
|
||||
#define INTERACT_TEXT /* 0x00800000 */ (1 << 23)
|
||||
#define INTERACT_TORNADO /* 0x01000000 */ (1 << 24)
|
||||
#define INTERACT_WHIRLPOOL /* 0x02000000 */ (1 << 25)
|
||||
#define INTERACT_CLAM_OR_BUBBA /* 0x04000000 */ (1 << 26)
|
||||
#define INTERACT_BBH_ENTRANCE /* 0x08000000 */ (1 << 27)
|
||||
#define INTERACT_SNUFIT_BULLET /* 0x10000000 */ (1 << 28)
|
||||
#define INTERACT_SHOCK /* 0x20000000 */ (1 << 29)
|
||||
#define INTERACT_IGLOO_BARRIER /* 0x40000000 */ (1 << 30)
|
||||
#define INTERACT_PLAYER /* 0x80000000 */ (1 << 31)
|
||||
|
||||
enum InteractionType {
|
||||
INTERACT_HOOT = /* 0x00000001 */ (1 << 0),
|
||||
INTERACT_GRABBABLE = /* 0x00000002 */ (1 << 1),
|
||||
INTERACT_DOOR = /* 0x00000004 */ (1 << 2),
|
||||
INTERACT_DAMAGE = /* 0x00000008 */ (1 << 3),
|
||||
INTERACT_COIN = /* 0x00000010 */ (1 << 4),
|
||||
INTERACT_CAP = /* 0x00000020 */ (1 << 5),
|
||||
INTERACT_POLE = /* 0x00000040 */ (1 << 6),
|
||||
INTERACT_KOOPA = /* 0x00000080 */ (1 << 7),
|
||||
INTERACT_UNKNOWN_08 = /* 0x00000100 */ (1 << 8),
|
||||
INTERACT_BREAKABLE = /* 0x00000200 */ (1 << 9),
|
||||
INTERACT_STRONG_WIND = /* 0x00000400 */ (1 << 10),
|
||||
INTERACT_WARP_DOOR = /* 0x00000800 */ (1 << 11),
|
||||
INTERACT_STAR_OR_KEY = /* 0x00001000 */ (1 << 12),
|
||||
INTERACT_WARP = /* 0x00002000 */ (1 << 13),
|
||||
INTERACT_CANNON_BASE = /* 0x00004000 */ (1 << 14),
|
||||
INTERACT_BOUNCE_TOP = /* 0x00008000 */ (1 << 15),
|
||||
INTERACT_WATER_RING = /* 0x00010000 */ (1 << 16),
|
||||
INTERACT_BULLY = /* 0x00020000 */ (1 << 17),
|
||||
INTERACT_FLAME = /* 0x00040000 */ (1 << 18),
|
||||
INTERACT_KOOPA_SHELL = /* 0x00080000 */ (1 << 19),
|
||||
INTERACT_BOUNCE_TOP2 = /* 0x00100000 */ (1 << 20),
|
||||
INTERACT_MR_BLIZZARD = /* 0x00200000 */ (1 << 21),
|
||||
INTERACT_HIT_FROM_BELOW = /* 0x00400000 */ (1 << 22),
|
||||
INTERACT_TEXT = /* 0x00800000 */ (1 << 23),
|
||||
INTERACT_TORNADO = /* 0x01000000 */ (1 << 24),
|
||||
INTERACT_WHIRLPOOL = /* 0x02000000 */ (1 << 25),
|
||||
INTERACT_CLAM_OR_BUBBA = /* 0x04000000 */ (1 << 26),
|
||||
INTERACT_BBH_ENTRANCE = /* 0x08000000 */ (1 << 27),
|
||||
INTERACT_SNUFIT_BULLET = /* 0x10000000 */ (1 << 28),
|
||||
INTERACT_SHOCK = /* 0x20000000 */ (1 << 29),
|
||||
INTERACT_IGLOO_BARRIER = /* 0x40000000 */ (1 << 30),
|
||||
INTERACT_PLAYER = /* 0x80000000 */ (1 << 31),
|
||||
};
|
||||
|
||||
// INTERACT_WARP
|
||||
#define INT_SUBTYPE_FADING_WARP 0x00000001
|
||||
|
|
|
@ -864,6 +864,76 @@ char gSmluaConstants[] = ""
|
|||
"INT_ANY_ATTACK = (INT_GROUND_POUND_OR_TWIRL | INT_PUNCH | INT_KICK | INT_TRIP | INT_SLIDE_KICK | INT_FAST_ATTACK_OR_SHELL | INT_HIT_FROM_ABOVE | INT_HIT_FROM_BELOW)\n"
|
||||
"INT_ATTACK_NOT_WEAK_FROM_ABOVE = (INT_GROUND_POUND_OR_TWIRL | INT_PUNCH | INT_KICK | INT_TRIP | INT_HIT_FROM_BELOW)\n"
|
||||
"INT_ATTACK_SLIDE = (INT_SLIDE_KICK | INT_FAST_ATTACK_OR_SHELL)\n"
|
||||
"INTERACT_HOOT = (1 << 0)\n"
|
||||
"INTERACT_GRABBABLE = (1 << 1)\n"
|
||||
"INTERACT_DOOR = (1 << 2)\n"
|
||||
"INTERACT_DAMAGE = (1 << 3)\n"
|
||||
"INTERACT_COIN = (1 << 4)\n"
|
||||
"INTERACT_CAP = (1 << 5)\n"
|
||||
"INTERACT_POLE = (1 << 6)\n"
|
||||
"INTERACT_KOOPA = (1 << 7)\n"
|
||||
"INTERACT_UNKNOWN_08 = (1 << 8)\n"
|
||||
"INTERACT_BREAKABLE = (1 << 9)\n"
|
||||
"INTERACT_STRONG_WIND = (1 << 10)\n"
|
||||
"INTERACT_WARP_DOOR = (1 << 11)\n"
|
||||
"INTERACT_STAR_OR_KEY = (1 << 12)\n"
|
||||
"INTERACT_WARP = (1 << 13)\n"
|
||||
"INTERACT_CANNON_BASE = (1 << 14)\n"
|
||||
"INTERACT_BOUNCE_TOP = (1 << 15)\n"
|
||||
"INTERACT_WATER_RING = (1 << 16)\n"
|
||||
"INTERACT_BULLY = (1 << 17)\n"
|
||||
"INTERACT_FLAME = (1 << 18)\n"
|
||||
"INTERACT_KOOPA_SHELL = (1 << 19)\n"
|
||||
"INTERACT_BOUNCE_TOP2 = (1 << 20)\n"
|
||||
"INTERACT_MR_BLIZZARD = (1 << 21)\n"
|
||||
"INTERACT_HIT_FROM_BELOW = (1 << 22)\n"
|
||||
"INTERACT_TEXT = (1 << 23)\n"
|
||||
"INTERACT_TORNADO = (1 << 24)\n"
|
||||
"INTERACT_WHIRLPOOL = (1 << 25)\n"
|
||||
"INTERACT_CLAM_OR_BUBBA = (1 << 26)\n"
|
||||
"INTERACT_BBH_ENTRANCE = (1 << 27)\n"
|
||||
"INTERACT_SNUFIT_BULLET = (1 << 28)\n"
|
||||
"INTERACT_SHOCK = (1 << 29)\n"
|
||||
"INTERACT_IGLOO_BARRIER = (1 << 30)\n"
|
||||
"INTERACT_PLAYER = (1 << 31)\n"
|
||||
"INT_SUBTYPE_FADING_WARP = 0x00000001\n"
|
||||
"INT_SUBTYPE_DELAY_INVINCIBILITY = 0x00000002\n"
|
||||
"INT_SUBTYPE_BIG_KNOCKBACK = 0x00000008\n"
|
||||
"INT_SUBTYPE_GRABS_MARIO = 0x00000004\n"
|
||||
"INT_SUBTYPE_HOLDABLE_NPC = 0x00000010\n"
|
||||
"INT_SUBTYPE_DROP_IMMEDIATELY = 0x00000040\n"
|
||||
"INT_SUBTYPE_KICKABLE = 0x00000100\n"
|
||||
"INT_SUBTYPE_NOT_GRABBABLE = 0x00000200\n"
|
||||
"INT_SUBTYPE_STAR_DOOR = 0x00000020\n"
|
||||
"INT_SUBTYPE_TWIRL_BOUNCE = 0x00000080\n"
|
||||
"INT_SUBTYPE_NO_EXIT = 0x00000400\n"
|
||||
"INT_SUBTYPE_GRAND_STAR = 0x00000800\n"
|
||||
"INT_SUBTYPE_SIGN = 0x00001000\n"
|
||||
"INT_SUBTYPE_NPC = 0x00004000\n"
|
||||
"INT_SUBTYPE_EATS_MARIO = 0x00002000\n"
|
||||
"ATTACK_PUNCH = 1\n"
|
||||
"ATTACK_KICK_OR_TRIP = 2\n"
|
||||
"ATTACK_FROM_ABOVE = 3\n"
|
||||
"ATTACK_GROUND_POUND_OR_TWIRL = 4\n"
|
||||
"ATTACK_FAST_ATTACK = 5\n"
|
||||
"ATTACK_FROM_BELOW = 6\n"
|
||||
"INT_STATUS_ATTACK_MASK = 0x000000FF\n"
|
||||
"INT_STATUS_HOOT_GRABBED_BY_MARIO = (1 << 0)\n"
|
||||
"INT_STATUS_MARIO_UNK1 = (1 << 1)\n"
|
||||
"INT_STATUS_MARIO_UNK2 = (1 << 2)\n"
|
||||
"INT_STATUS_MARIO_DROP_OBJECT = (1 << 3)\n"
|
||||
"INT_STATUS_MARIO_UNK4 = (1 << 4)\n"
|
||||
"INT_STATUS_MARIO_UNK5 = (1 << 5)\n"
|
||||
"INT_STATUS_MARIO_UNK6 = (1 << 6)\n"
|
||||
"INT_STATUS_MARIO_UNK7 = (1 << 7)\n"
|
||||
"INT_STATUS_GRABBED_MARIO = (1 << 11)\n"
|
||||
"INT_STATUS_ATTACKED_MARIO = (1 << 13)\n"
|
||||
"INT_STATUS_WAS_ATTACKED = (1 << 14)\n"
|
||||
"INT_STATUS_INTERACTED = (1 << 15)\n"
|
||||
"INT_STATUS_TRAP_TURN = (1 << 20)\n"
|
||||
"INT_STATUS_HIT_MINE = (1 << 21)\n"
|
||||
"INT_STATUS_STOP_RIDING = (1 << 22)\n"
|
||||
"INT_STATUS_TOUCHED_BOB_OMB = (1 << 23)\n"
|
||||
"MARIO_ANIM_SLOW_LEDGE_GRAB = 0\n"
|
||||
"MARIO_ANIM_FALL_OVER_BACKWARDS = 1\n"
|
||||
"MARIO_ANIM_BACKWARD_AIR_KB = 2\n"
|
||||
|
@ -1487,7 +1557,8 @@ char gSmluaConstants[] = ""
|
|||
"HOOK_ON_PLAYER_CONNECTED = 6\n"
|
||||
"HOOK_ON_PLAYER_DISCONNECTED = 7\n"
|
||||
"HOOK_ON_HUD_RENDER = 8\n"
|
||||
"HOOK_MAX = 9\n"
|
||||
"HOOK_ON_INTERACT = 9\n"
|
||||
"HOOK_MAX = 10\n"
|
||||
"SPTASK_STATE_NOT_STARTED = 0\n"
|
||||
"SPTASK_STATE_RUNNING = 1\n"
|
||||
"SPTASK_STATE_INTERRUPTED = 2\n"
|
||||
|
|
|
@ -112,6 +112,38 @@ void smlua_call_event_hooks_mario_params(enum LuaHookedEventType hookType, struc
|
|||
}
|
||||
}
|
||||
|
||||
void smlua_call_event_hooks_interact_params(enum LuaHookedEventType hookType, struct MarioState* m, struct Object* obj, u32 interactType, bool interactValue) {
|
||||
lua_State* L = gLuaState;
|
||||
if (L == NULL) { return; }
|
||||
struct LuaHookedEvent* hook = &sHookedEvents[hookType];
|
||||
for (int i = 0; i < hook->count; i++) {
|
||||
// push the callback onto the stack
|
||||
lua_rawgeti(L, LUA_REGISTRYINDEX, hook->reference[i]);
|
||||
|
||||
// push mario state
|
||||
lua_getglobal(L, "gMarioStates");
|
||||
lua_pushinteger(L, m->playerIndex);
|
||||
lua_gettable(L, -2);
|
||||
lua_remove(L, -2);
|
||||
|
||||
// push object
|
||||
smlua_push_object(L, LOT_OBJECT, obj);
|
||||
|
||||
// push interact type
|
||||
lua_pushinteger(L, interactType);
|
||||
|
||||
// push interact value
|
||||
lua_pushboolean(L, interactValue);
|
||||
|
||||
// call the callback
|
||||
if (0 != lua_pcall(L, 4, 0, 0)) {
|
||||
LOG_LUA("Failed to call the callback: %u, %s", hookType, lua_tostring(L, -1));
|
||||
smlua_logline();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void smlua_call_event_hooks_network_player_param(enum LuaHookedEventType hookType, struct NetworkPlayer* np) {
|
||||
lua_State* L = gLuaState;
|
||||
if (L == NULL) { return; }
|
||||
|
|
|
@ -13,6 +13,7 @@ enum LuaHookedEventType {
|
|||
HOOK_ON_PLAYER_CONNECTED,
|
||||
HOOK_ON_PLAYER_DISCONNECTED,
|
||||
HOOK_ON_HUD_RENDER,
|
||||
HOOK_ON_INTERACT,
|
||||
HOOK_MAX,
|
||||
};
|
||||
|
||||
|
@ -26,12 +27,14 @@ static char* LuaHookedEventTypeName[] = {
|
|||
"HOOK_ON_PLAYER_CONNECTED",
|
||||
"HOOK_ON_PLAYER_DISCONNECTED",
|
||||
"HOOK_ON_HUD_RENDER",
|
||||
"HOOK_ON_INTERACT",
|
||||
"HOOK_MAX"
|
||||
};
|
||||
|
||||
void smlua_call_event_hooks(enum LuaHookedEventType hookType);
|
||||
void smlua_call_event_hooks_mario_param(enum LuaHookedEventType hookType, struct MarioState* m);
|
||||
void smlua_call_event_hooks_mario_params(enum LuaHookedEventType hookType, struct MarioState* m1, struct MarioState* m2);
|
||||
void smlua_call_event_hooks_interact_params(enum LuaHookedEventType hookType, struct MarioState* m, struct Object* obj, u32 interactType, bool interactValue);
|
||||
|
||||
bool smlua_call_action_hook(struct MarioState* m, s32* returnValue);
|
||||
u32 smlua_get_action_interaction_type(struct MarioState* m);
|
||||
|
@ -41,4 +44,4 @@ void smlua_display_chat_commands(void);
|
|||
|
||||
void smlua_bind_hooks(void);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue