Skip to content

Commit

Permalink
console: introduce registry
Browse files Browse the repository at this point in the history
  • Loading branch information
rr- committed Feb 2, 2025
1 parent 970efb9 commit 02d3f8d
Show file tree
Hide file tree
Showing 63 changed files with 147 additions and 407 deletions.
6 changes: 2 additions & 4 deletions src/libtrx/game/console/cmd/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "config.h"
#include "debug.h"
#include "enum_map.h"
#include "game/console/registry.h"
#include "game/game_string.h"
#include "memory.h"
#include "strings.h"
Expand Down Expand Up @@ -272,7 +273,4 @@ COMMAND_RESULT Console_Cmd_Config_Helper(
return result;
}

CONSOLE_COMMAND g_Console_Cmd_Config = {
.prefix = "set",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("set", M_Entrypoint)
8 changes: 2 additions & 6 deletions src/libtrx/game/console/cmd/die.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#include "game/console/cmd/die.h"

#include "game/console/registry.h"
#include "game/items.h"
#include "game/lara/common.h"
#include "game/objects/common.h"
Expand Down Expand Up @@ -34,7 +33,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_Die = {
.prefix = "abortion|natla-?s(uc|tin)ks",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("abortion|natla-?s(uc|tin)ks", M_Entrypoint)
8 changes: 2 additions & 6 deletions src/libtrx/game/console/cmd/end_level.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#include "game/console/cmd/end_level.h"

#include "game/console/registry.h"
#include "game/game_flow.h"
#include "game/lara/cheat.h"
#include "strings.h"
Expand All @@ -21,7 +20,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_EndLevel = {
.prefix = "end-?level|next-?level",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("end-?level|next-?level", M_Entrypoint)
8 changes: 2 additions & 6 deletions src/libtrx/game/console/cmd/exit_game.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#include "game/console/cmd/exit_game.h"

#include "game/console/registry.h"
#include "game/game_flow/common.h"
#include "strings.h"

Expand All @@ -15,7 +14,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_ExitGame = {
.prefix = "exit|quit",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("exit|quit", M_Entrypoint)
8 changes: 2 additions & 6 deletions src/libtrx/game/console/cmd/exit_to_title.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#include "game/console/cmd/exit_to_title.h"

#include "game/console/registry.h"
#include "game/game_flow/common.h"
#include "strings.h"

Expand All @@ -15,7 +14,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_ExitToTitle = {
.prefix = "title",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("title", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/flipmap.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "game/console/cmd/flipmap.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game_flow.h"
#include "game/game_string.h"
#include "game/rooms.h"
Expand Down Expand Up @@ -33,7 +33,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_FlipMap = {
.prefix = "flip|flipmap",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("flip|flipmap", M_Entrypoint)
8 changes: 2 additions & 6 deletions src/libtrx/game/console/cmd/fly.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#include "game/console/cmd/fly.h"

#include "game/console/registry.h"
#include "game/game.h"
#include "game/game_string.h"
#include "game/lara/cheat.h"
Expand Down Expand Up @@ -37,7 +36,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_Fly = {
.prefix = "fly",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("fly", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/give_item.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "game/console/cmd/give_item.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game.h"
#include "game/game_string.h"
#include "game/inventory.h"
Expand Down Expand Up @@ -81,7 +81,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_GiveItem = {
.prefix = "give",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("give", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/heal.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "game/console/cmd/heal.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game.h"
#include "game/game_string.h"
#include "game/lara/common.h"
Expand Down Expand Up @@ -31,7 +31,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_Heal = {
.prefix = "heal",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("heal", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/kill.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "game/console/cmd/kill.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/const.h"
#include "game/creature.h"
#include "game/game_string.h"
Expand Down Expand Up @@ -168,7 +168,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return M_KillEnemyType(ctx->args);
}

CONSOLE_COMMAND g_Console_Cmd_Kill = {
.prefix = "kill",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("kill", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/load_game.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "game/console/cmd/load_game.h"

#include "config.h"
#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game_flow/common.h"
#include "game/game_string.h"
#include "game/savegame.h"
Expand Down Expand Up @@ -35,7 +35,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_LoadGame = {
.prefix = "load",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("load", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/play_cutscene.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "game/console/cmd/play_cutscene.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game_flow/common.h"
#include "game/game_string.h"
#include "strings.h"
Expand Down Expand Up @@ -31,7 +31,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
}
}

CONSOLE_COMMAND g_Console_Cmd_PlayCutscene = {
.prefix = "cut(scene)?",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("cut(scene)?", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/play_demo.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "game/console/cmd/play_demo.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/demo.h"
#include "game/game_flow/common.h"
#include "game/game_string.h"
Expand Down Expand Up @@ -32,7 +32,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_PlayDemo = {
.prefix = "demo",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("demo", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/play_gym.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "game/console/cmd/play_gym.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game_flow/common.h"
#include "game/game_string.h"
#include "strings.h"
Expand All @@ -25,7 +25,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
}
}

CONSOLE_COMMAND g_Console_Cmd_PlayGym = {
.prefix = "gym|home",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("gym|home", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/play_level.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "game/console/cmd/play_level.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game_flow/common.h"
#include "game/game_string.h"
#include "strings.h"
Expand Down Expand Up @@ -81,7 +81,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return result;
}

CONSOLE_COMMAND g_Console_Cmd_PlayLevel = {
.prefix = "play|level",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("play|level", M_Entrypoint)
8 changes: 2 additions & 6 deletions src/libtrx/game/console/cmd/pos.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#include "game/console/cmd/pos.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/const.h"
#include "game/game.h"
#include "game/game_flow/common.h"
Expand Down Expand Up @@ -41,7 +40,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_Pos = {
.prefix = "pos",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("pos", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/save_game.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "game/console/cmd/save_game.h"

#include "config.h"
#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game.h"
#include "game/game_flow/common.h"
#include "game/game_string.h"
Expand Down Expand Up @@ -31,7 +31,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_SaveGame = {
.prefix = "save",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("save", M_Entrypoint)
8 changes: 2 additions & 6 deletions src/libtrx/game/console/cmd/set_health.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@

#include "game/console/cmd/pos.h"
#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game.h"
#include "game/game_string.h"
#include "game/lara/common.h"
Expand Down Expand Up @@ -34,7 +33,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_SetHealth = {
.prefix = "hp",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("hp", M_Entrypoint)
8 changes: 2 additions & 6 deletions src/libtrx/game/console/cmd/sfx.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#include "game/console/cmd/sfx.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game_string.h"
#include "game/sound.h"
#include "memory.h"
Expand Down Expand Up @@ -78,7 +77,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_SUCCESS;
}

CONSOLE_COMMAND g_Console_Cmd_SFX = {
.prefix = "sfx",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("sfx", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/speed.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "game/console/cmd/speed.h"

#include "game/clock.h"
#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/game_string.h"
#include "strings.h"

Expand All @@ -22,7 +22,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return CR_BAD_INVOCATION;
}

CONSOLE_COMMAND g_Console_Cmd_Speed = {
.prefix = "speed",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("speed", M_Entrypoint)
9 changes: 3 additions & 6 deletions src/libtrx/game/console/cmd/teleport.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "game/console/cmd/teleport.h"

#include "game/console/common.h"
#include "game/console/registry.h"
#include "game/const.h"
#include "game/game.h"
#include "game/game_string.h"
Expand Down Expand Up @@ -253,7 +253,4 @@ static COMMAND_RESULT M_Entrypoint(const COMMAND_CONTEXT *const ctx)
return M_TeleportToObject(ctx->args);
}

CONSOLE_COMMAND g_Console_Cmd_Teleport = {
.prefix = "tp",
.proc = M_Entrypoint,
};
REGISTER_CONSOLE_COMMAND("tp", M_Entrypoint)
16 changes: 3 additions & 13 deletions src/libtrx/game/console/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "./internal.h"
#include "debug.h"
#include "game/console/extern.h"
#include "game/console/registry.h"
#include "game/game_string.h"
#include "game/ui/widgets/console.h"
#include "log.h"
Expand Down Expand Up @@ -30,6 +30,7 @@ void Console_Shutdown(void)
}

Console_History_Shutdown();
Console_Registry_Shutdown();

m_IsOpened = false;
}
Expand Down Expand Up @@ -93,18 +94,7 @@ COMMAND_RESULT Console_Eval(const char *const cmdline)
{
LOG_INFO("executing command: %s", cmdline);

const CONSOLE_COMMAND *matching_cmd = nullptr;
CONSOLE_COMMAND **cmd = Console_GetCommands();
while (*cmd != nullptr) {
char regex[strlen((*cmd)->prefix) + 13];
sprintf(regex, "^(%s)(\\s+.*)?$", (*cmd)->prefix);
if (String_Match(cmdline, regex)) {
matching_cmd = *cmd;
break;
}
*cmd++;
}

const CONSOLE_COMMAND *const matching_cmd = Console_Registry_Get(cmdline);
if (matching_cmd == nullptr) {
Console_Log(GS(OSD_UNKNOWN_COMMAND), cmdline);
return CR_BAD_INVOCATION;
Expand Down
1 change: 1 addition & 0 deletions src/libtrx/game/console/internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@

void Console_History_Init(void);
void Console_History_Shutdown(void);
void Console_Registry_Shutdown(void);
Loading

0 comments on commit 02d3f8d

Please sign in to comment.