Files
fs2open.github.com/code/scripting/api/objs/gameevent.cpp
T
2018-09-26 19:15:42 +02:00

59 lines
1.2 KiB
C++

#include "gameevent.h"
namespace scripting {
namespace api {
gameevent_h::gameevent_h() {
edx = -1;
}
gameevent_h::gameevent_h(int n_event) {
edx = n_event;
}
bool gameevent_h::IsValid() {
return (edx > -1 && edx < Num_gs_event_text);
}
int gameevent_h::Get() {
return edx;
}
ADE_OBJ(l_GameEvent, gameevent_h, "gameevent", "Game event");
ADE_FUNC(__tostring, l_GameEvent, NULL, "Game event name", "string", "Game event name, or empty string if handle is invalid")
{
gameevent_h *gh = NULL;
if (!ade_get_args(L, "o", l_GameEvent.GetPtr(&gh)))
return ade_set_error(L, "s", "");
if (!gh->IsValid())
return ade_set_error(L, "s", "");
return ade_set_args(L, "s", GS_event_text[gh->Get()]);
}
ADE_VIRTVAR(Name, l_GameEvent, "string", "Game event name", "string", "Game event name, or empty string if handle is invalid")
{
gameevent_h *gh = NULL;
const char* n_name = nullptr;
if (!ade_get_args(L, "o|s", l_GameEvent.GetPtr(&gh), &n_name))
return ade_set_error(L, "s", "");
if (!gh->IsValid())
return ade_set_error(L, "s", "");
int edx = gh->Get();
if (ADE_SETTING_VAR)
{
Error(LOCATION, "Can't set game event names at this time");
}
return ade_set_args(L, "s", GS_event_text[edx]);
}
}
}