Getting shaders working with lua.
This commit is contained in:
109
src/duskrpg/script/module/story/modulestoryflag.c
Normal file
109
src/duskrpg/script/module/story/modulestoryflag.c
Normal file
@@ -0,0 +1,109 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Dominic Masters
|
||||
*
|
||||
* This software is released under the MIT License.
|
||||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
#include "modulestoryflag.h"
|
||||
#include "assert/assert.h"
|
||||
#include "story/storyflag.h"
|
||||
|
||||
void moduleStoryFlag(scriptcontext_t *context) {
|
||||
assertNotNull(context, "Script context cannot be NULL");
|
||||
|
||||
lua_register(context->luaState, "storyFlagGet", moduleStoryFlagGet);
|
||||
lua_register(context->luaState, "storyFlagSet", moduleStoryFlagSet);
|
||||
lua_register(
|
||||
context->luaState, "storyFlagIncrement", moduleStoryFlagIncrement
|
||||
);
|
||||
lua_register(
|
||||
context->luaState, "storyFlagDecrement", moduleStoryFlagDecrement
|
||||
);
|
||||
}
|
||||
|
||||
int moduleStoryFlagGet(lua_State *L) {
|
||||
assertNotNull(L, "Lua state cannot be NULL");
|
||||
|
||||
// Require story flag ID argument
|
||||
if(!lua_isnumber(L, 1)) {
|
||||
luaL_error(L, "Expected flag ID.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
storyflag_t flag = (storyflag_t)lua_tonumber(L, 1);
|
||||
if(flag <= STORY_FLAG_NULL || flag >= STORY_FLAG_COUNT) {
|
||||
luaL_error(L, "Invalid flag ID %d", flag);
|
||||
return 0;
|
||||
}
|
||||
|
||||
storyflagvalue_t value = storyFlagGet(flag);
|
||||
lua_pushnumber(L, value);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int moduleStoryFlagSet(lua_State *L) {
|
||||
assertNotNull(L, "Lua state cannot be NULL");
|
||||
|
||||
// Require story flag ID argument
|
||||
if(!lua_isnumber(L, 1)) {
|
||||
luaL_error(L, "Expected flag ID.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Require story flag value argument
|
||||
if(!lua_isnumber(L, 2)) {
|
||||
luaL_error(L, "Expected flag value.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
storyflag_t flag = (storyflag_t)lua_tonumber(L, 1);
|
||||
if(flag <= STORY_FLAG_NULL || flag >= STORY_FLAG_COUNT) {
|
||||
luaL_error(L, "Invalid flag ID %d", flag);
|
||||
return 0;
|
||||
}
|
||||
|
||||
storyflagvalue_t value = (storyflagvalue_t)lua_tonumber(L, 2);
|
||||
storyFlagSet(flag, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int moduleStoryFlagIncrement(lua_State *L) {
|
||||
assertNotNull(L, "Lua state cannot be NULL");
|
||||
|
||||
// Require story flag ID argument
|
||||
if(!lua_isnumber(L, 1)) {
|
||||
luaL_error(L, "Expected flag ID.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
storyflag_t flag = (storyflag_t)lua_tonumber(L, 1);
|
||||
if(flag <= STORY_FLAG_NULL || flag >= STORY_FLAG_COUNT) {
|
||||
luaL_error(L, "Invalid flag ID %d", flag);
|
||||
return 0;
|
||||
}
|
||||
|
||||
storyflagvalue_t value = storyFlagGet(flag);
|
||||
storyFlagSet(flag, value + 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int moduleStoryFlagDecrement(lua_State *L) {
|
||||
assertNotNull(L, "Lua state cannot be NULL");
|
||||
|
||||
// Require story flag ID argument
|
||||
if(!lua_isnumber(L, 1)) {
|
||||
luaL_error(L, "Expected flag ID.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
storyflag_t flag = (storyflag_t)lua_tonumber(L, 1);
|
||||
if(flag <= STORY_FLAG_NULL || flag >= STORY_FLAG_COUNT) {
|
||||
luaL_error(L, "Invalid flag ID %d", flag);
|
||||
return 0;
|
||||
}
|
||||
|
||||
storyflagvalue_t value = storyFlagGet(flag);
|
||||
storyFlagSet(flag, value - 1);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user