19#ifndef GAMECURSES_RL_H
20#define GAMECURSES_RL_H
29#define MIN(a, b) ((a) < (b) ? (a) : (b))
72#define GUI_TXTFIELD_GROUP_BUTTONS_MAX BUTTON_NAME_TXTFIELD
73#define GUI_TXTFIELD_GROUP_BOX_COLOR { 200, 200, 200, 255 }
74#define GUI_TXTFIELD_GROUP_TEXT_COLOR { 0, 0, 0, 255 }
81#define GUI_GAMEPICK_GROUP_BUTTONS_MAX BUTTON_LOAD_GAME
82#define GUI_GAMEPICK_GROUP_BOX_COLOR { 0, 117, 44, 255 }
83#define GUI_GAMEPICK_GROUP_TEXT_COLOR { 80, 80, 80, 255 }
92#define GUI_CLASSPICK_GROUP_BUTTONS_MAX BUTTON_CLASS_ASSASSIN
93#define GUI_CLASSPICK_GROUP_BOX_COLOR GUI_GAMEPICK_GROUP_BOX_COLOR
94#define GUI_CLASSPICK_GROUP_TEXT_COLOR GUI_GAMEPICK_GROUP_TEXT_COLOR
102#define GUI_SAVESLOTPICK_GROUP_BUTTONS_MAX BUTTON_SAVESLOT_3
103#define GUI_SAVESLOTPICK_GROUP_BOX_COLOR GUI_GAMEPICK_GROUP_BOX_COLOR
104#define GUI_SAVESLOTPICK_GROUP_TEXT_COLOR GUI_GAMEPICK_GROUP_TEXT_COLOR
112#define GUI_SHOP_LAYOUT_GROUPS_MAX SHOP_LAYOUT_OTHERS_GROUP
119#define GUI_SHOP_OTHERS_GROUP_BUTTONS_MAX BUTTON_SELL_ALL
120#define GUI_SHOP_OTHERS_GROUP_BOX_COLOR { 0, 117, 44, 255 }
121#define GUI_SHOP_OTHERS_GROUP_TEXT_COLOR { 80, 80, 80, 255 }
131#define GUI_FIGHT_GROUP_BUTTONS_MAX BUTTON_STATS
132#define GUI_FIGHT_GROUP_BOX_COLOR GUI_GAMEPICK_GROUP_BOX_COLOR
133#define GUI_FIGHT_GROUP_TEXT_COLOR GUI_GAMEPICK_GROUP_TEXT_COLOR
142#define GUI_SPECIAL_GROUP_BUTTONS_MAX BUTTON_SPECIAL_4
143#define GUI_SPECIAL_GROUP_BOX_COLOR GUI_FIGHT_GROUP_BOX_COLOR
144#define GUI_SPECIAL_GROUP_TEXT_COLOR GUI_FIGHT_GROUP_TEXT_COLOR
151#define GUI_EQUIPS_GROUP_BUTTONS_MAX BUTTON_CHECK_LOADOUT
152#define GUI_EQUIPS_GROUP_BOX_COLOR GUI_FIGHT_GROUP_BOX_COLOR
153#define GUI_EQUIPS_GROUP_TEXT_COLOR GUI_FIGHT_GROUP_TEXT_COLOR
160#define GUI_TREASURE_GROUP_BUTTONS_MAX BUTTON_LEAVE_TREASURE
161#define GUI_TREASURE_GROUP_BOX_COLOR GUI_FIGHT_GROUP_BOX_COLOR
162#define GUI_TREASURE_GROUP_TEXT_COLOR GUI_FIGHT_GROUP_TEXT_COLOR
171#define GUI_FLOOR_GROUP_BUTTONS_MAX BUTTON_FLOOR_STATS
172#define GUI_FLOOR_GROUP_BOX_COLOR GUI_FIGHT_GROUP_BOX_COLOR
173#define GUI_FLOOR_GROUP_TEXT_COLOR GUI_FIGHT_GROUP_TEXT_COLOR
175#ifdef HELAPORDO_DEBUG_ACCESS
181#define GUI_DEBUG_GROUP_BUTTONS_MAX BUTTON_CYCLE_DEBUG_LAYOUT
182#define GUI_DEBUG_GROUP_BOX_COLOR GUI_FIGHT_GROUP_BOX_COLOR
183#define GUI_DEBUG_GROUP_TEXT_COLOR GUI_FIGHT_GROUP_TEXT_COLOR
190#define GUI_DEBUG_SELECTION_MAX GUI_DEBUG_FLOOR
203#define GUI_DEBUG_FIGHTER_LAYOUT_GROUPS_MAX DEBUG_FIGHTER_LAYOUT_ARTIFACTSBAG_GROUP
227#ifdef HELAPORDO_DEBUG_ACCESS
270#ifdef HELAPORDO_DEBUG_ACCESS
305void update_GameScreen(
Gui_State* gui_state,
Floor** current_floor,
Path** game_path,
Fighter** player,
Room** current_room,
Gamestate** gamestate, RingaBuf* rb_notifications,
int* current_x,
int* current_y,
int logo_sleep,
bool* pause_animation, Koliseo_Temp** floor_kls, KLS_Conf temporary_kls_conf,
int* current_anim_frame,
loadInfo* load_info,
int* saveslot_index,
char current_save_path[1500],
char seed[
PATH_SEED_BUFSIZE+1],
bool is_seeded,
int* roomsDone,
int* enemyTotal);
306void draw_GameScreen_Texture(RenderTexture2D target_txtr,
Gui_State gui_state,
int fps_target,
int current_anim_frame,
Floor* current_floor,
Path* game_path,
Fighter* player,
Room* current_room,
Gamestate* gamestate, RingaBuf* rb_notifications,
int current_x,
int current_y,
loadInfo* load_info,
int saveslot_index,
char current_save_path[1500],
char seed[
PATH_SEED_BUFSIZE+1]);
308 Path *p,
int roomIndex,
int enemyIndex,
int isBoss);
#define CONSUMABLESMAX
Maximum index of consumableClass, so that the size has to add 1 for the 0th index.
Definition game_core.h:494
#define FIGHTER_SKILL_SLOTS
Definition game_core.h:866
#define CONSUMABLE_SHOP_MAX
Maximum number of total consumables sold in a shop.
Definition game_core.h:1491
#define EQUIP_SHOP_MAX
Maximum number of equips sold in a shop.
Definition game_core.h:1486
#define PATH_SEED_BUFSIZE
Definition game_core.h:1348
#define ARTIFACTSMAX
Maximum index of artifactClass, so that the size has to add 1 for the 0th index.
Definition game_core.h:543
#define COUNTERSMAX
Maximum index of counterIndexes, so that the size has to add 1 for the 0th index.
Definition game_core.h:930
#define EQUIPSBAGSIZE
Definition game_core.h:962
#define SPECIALSMAX
Maximum index of specialMove per class, so that the size for each Fighter has to add 1 for the 0th in...
Definition game_core.h:824
specialMove
The different kinds of special moves.
Definition game_core.h:802
#define EQUIPZONES
Maximum index of Equipzone, so that the size has to add 1 for the 0th index.
Definition game_core.h:951
#define PERKSMAX
Maximum index of perkClass, so that the size has to add 1 for the 0th index.
Definition game_core.h:985
void handleTutorial(void)
Shows tutorial info.
Definition game_curses.c:3790
Gui_Button special_buttons[GUI_SPECIAL_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:203
Gui_Button_Group debug_buttons_group
Definition game_rl.c:391
Gui_Button shop_equip_buttons[EQUIP_SHOP_MAX]
Definition game_rl.c:270
Gui_Button fight_buttons[GUI_FIGHT_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:151
Gui_Button debug_fighter_consumablesbag_buttons[CONSUMABLESMAX+1]
Definition game_rl.c:402
Gui_Button debug_fighter_artifactsbag_buttons[ARTIFACTSMAX+1]
Definition game_rl.c:403
Gui_Button equips_buttons[GUI_EQUIPS_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:245
Gui_Button_Group debug_fighter_consumablesbag_group
Definition game_rl.c:428
Gui_Button shop_consumable_buttons[CONSUMABLE_SHOP_MAX]
Definition game_rl.c:271
Gui_Button_Group debug_fighter_artifactsbag_group
Definition game_rl.c:432
Gui_Button_Group debug_fighter_perks_group
Definition game_rl.c:416
Gui_Button_Group floor_buttons_group
Definition game_rl.c:367
Gui_Button txtfield_buttons[GUI_TXTFIELD_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:24
Gui_Button debug_fighter_equipslots_buttons[EQUIPZONES+1]
Definition game_rl.c:400
Gui_Button debug_fighter_perks_buttons[PERKSMAX+1]
Definition game_rl.c:399
Gui_Button_Group fight_buttons_group
Definition game_rl.c:198
Gui_Button debug_fighter_skillslots_buttons[FIGHTER_SKILL_SLOTS+1]
Definition game_rl.c:397
Gui_Button_Group special_buttons_group
Definition game_rl.c:241
Gui_Button treasure_buttons[GUI_TREASURE_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:308
Gui_Button debug_fighter_specialslots_buttons[SPECIALSMAX+1]
Definition game_rl.c:396
Gui_Button saveslotpick_buttons[GUI_SAVESLOTPICK_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:117
Gui_Button floor_buttons[GUI_FLOOR_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:333
Gui_Button_Group treasure_buttons_group
Definition game_rl.c:328
Gui_Button_Group saveslotpick_buttons_group
Definition game_rl.c:146
Gui_Button_Group classpick_buttons_group
Definition game_rl.c:112
Gui_Button_Group txtfield_buttons_group
Definition game_rl.c:44
Gui_Button_Group debug_fighter_specialslots_group
Definition game_rl.c:404
Gui_Button_Group debug_fighter_equipsbag_group
Definition game_rl.c:424
Gui_Button classpick_buttons[GUI_CLASSPICK_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:74
Gui_Button_Group debug_fighter_skillslots_group
Definition game_rl.c:408
Gui_Button_Group shop_equip_buttons_group
Definition game_rl.c:286
Gui_Button_Group * debug_fighter_groups[GUI_DEBUG_FIGHTER_LAYOUT_GROUPS_MAX+1]
Definition game_rl.c:436
Gui_Button_Group shop_consumable_buttons_group
Definition game_rl.c:290
Gui_Button shop_other_buttons[GUI_SHOP_OTHERS_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:272
Gui_Button_Group gamepick_buttons_group
Definition game_rl.c:69
Gui_Button debug_fighter_counters_buttons[COUNTERSMAX+1]
Definition game_rl.c:398
Gui_Button_Layout debug_fighter_buttons_layout
Definition game_rl.c:446
Gui_Button_Group equips_buttons_group
Definition game_rl.c:265
Gui_Button_Group shop_other_buttons_group
Definition game_rl.c:294
Gui_Button_Group * shop_buttons_groups[GUI_SHOP_LAYOUT_GROUPS_MAX+1]
Definition game_rl.c:298
Gui_Button debug_buttons[GUI_DEBUG_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:373
Gui_Button_Layout shop_buttons_layout
Definition game_rl.c:303
Gui_Button_Group debug_fighter_counters_group
Definition game_rl.c:412
Gui_Button_Group debug_fighter_equipslots_group
Definition game_rl.c:420
Gui_Button debug_fighter_equipsbag_buttons[EQUIPSBAGSIZE+1]
Definition game_rl.c:401
Gui_Button gamepick_buttons[GUI_GAMEPICK_GROUP_BUTTONS_MAX+1]
Definition game_rl.c:49
Gui_Shop_Layout_Group_Index
Definition game_rl.h:106
@ SHOP_LAYOUT_OTHERS_GROUP
Definition game_rl.h:109
@ SHOP_LAYOUT_EQUIPS_GROUP
Definition game_rl.h:107
@ SHOP_LAYOUT_CONSUMABLES_GROUP
Definition game_rl.h:108
void setConsumableSprite(Consumable *c)
Takes a Consumable pointer and prepares its sprite field by copying it line by line from consumables_...
Definition game_rl.c:538
Gui_Equips_Group_Button_Index
Definition game_rl.h:146
@ BUTTON_CHECK_LOADOUT
Definition game_rl.h:148
@ BUTTON_OPEN_BAG
Definition game_rl.h:147
void setEquipslotSprite(Equipslot *s)
Takes a Equipslot pointer and prepares its sprite field by copying it line by line from equipzones_sp...
Definition game_curses.c:1689
#define GUI_CLASSPICK_GROUP_BUTTONS_MAX
Definition game_rl.h:92
void setFighterSprite(Fighter *f)
Takes a Fighter pointer and prepares its sprite field by copying it line by line.
Definition game_curses.c:1662
#define GUI_EQUIPS_GROUP_BUTTONS_MAX
Definition game_rl.h:151
void fight_Special(specialMove move, Rectangle *w, Fighter *f, Enemy *e, Boss *b, Path *p, int roomIndex, int enemyIndex, int isBoss)
Takes a specialMove, a Fighter, a Enemy, a Boss and a Path pointers (and integers for current room an...
Definition game_rl.c:4798
Gui_Shop_Others_Group_Button_Index
Definition game_rl.h:114
@ BUTTON_SELL_ALL
Definition game_rl.h:116
@ BUTTON_LEAVE_SHOP
Definition game_rl.h:115
void update_GameScreen(Gui_State *gui_state, Floor **current_floor, Path **game_path, Fighter **player, Room **current_room, Gamestate **gamestate, RingaBuf *rb_notifications, int *current_x, int *current_y, int logo_sleep, bool *pause_animation, Koliseo_Temp **floor_kls, KLS_Conf temporary_kls_conf, int *current_anim_frame, loadInfo *load_info, int *saveslot_index, char current_save_path[1500], char seed[PATH_SEED_BUFSIZE+1], bool is_seeded, int *roomsDone, int *enemyTotal)
Definition game_rl.c:788
Gui_SaveSlotPick_Group_Button_Index
Definition game_rl.h:96
@ BUTTON_SAVESLOT_3
Definition game_rl.h:99
@ BUTTON_SAVESLOT_2
Definition game_rl.h:98
@ BUTTON_SAVESLOT_1
Definition game_rl.h:97
Gui_ClassPick_Group_Button_Index
Definition game_rl.h:85
@ BUTTON_CLASS_ASSASSIN
Definition game_rl.h:89
@ BUTTON_CLASS_MAGE
Definition game_rl.h:87
@ BUTTON_CLASS_KNIGHT
Definition game_rl.h:86
@ BUTTON_CLASS_ARCHER
Definition game_rl.h:88
void hlpd_draw_notifications(RingaBuf *rb_notifications, Rectangle notifications_rect)
Takes a RingaBuf to take the Notification from, and a Rectangle to draw them to.
Definition game_rl.c:704
Gui_Button_State
Definition game_rl.h:31
@ BUTTON_NORMAL
Definition game_rl.h:32
@ BUTTON_PRESSED
Definition game_rl.h:34
@ BUTTON_HOVER
Definition game_rl.h:33
void setEquipSprite(Equip *e)
Takes a Equip pointer and prepares its sprite field by copying it line by line from equips_sprites,...
Definition game_rl.c:519
#define GUI_GAMEPICK_GROUP_BUTTONS_MAX
Definition game_rl.h:81
#define GUI_FIGHT_GROUP_BUTTONS_MAX
Definition game_rl.h:131
Gui_Treasure_Group_Button_Index
Definition game_rl.h:155
@ BUTTON_LEAVE_TREASURE
Definition game_rl.h:157
@ BUTTON_TAKE_TREASURE
Definition game_rl.h:156
Gui_Debug_Fighter_Layout_Group_Index
Definition game_rl.h:192
@ DEBUG_FIGHTER_LAYOUT_PERKS_GROUP
Definition game_rl.h:196
@ DEBUG_FIGHTER_LAYOUT_EQUIPSLOTS_GROUP
Definition game_rl.h:197
@ DEBUG_FIGHTER_LAYOUT_CONSUMABLESBAG_GROUP
Definition game_rl.h:199
@ DEBUG_FIGHTER_LAYOUT_EQUIPSBAG_GROUP
Definition game_rl.h:198
@ DEBUG_FIGHTER_LAYOUT_SKILLSLOTS_GROUP
Definition game_rl.h:194
@ DEBUG_FIGHTER_LAYOUT_SPECIALSLOTS_GROUP
Definition game_rl.h:193
@ DEBUG_FIGHTER_LAYOUT_ARTIFACTSBAG_GROUP
Definition game_rl.h:200
@ DEBUG_FIGHTER_LAYOUT_TURNCOUNTERS_GROUP
Definition game_rl.h:195
Gui_Special_Group_Button_Index
Definition game_rl.h:135
@ BUTTON_SPECIAL_2
Definition game_rl.h:137
@ BUTTON_SPECIAL_1
Definition game_rl.h:136
@ BUTTON_SPECIAL_3
Definition game_rl.h:138
@ BUTTON_SPECIAL_4
Definition game_rl.h:139
Gui_Debug_Group_Button_Index
Definition game_rl.h:176
@ BUTTON_CYCLE_DEBUG_LAYOUT
Definition game_rl.h:178
@ BUTTON_DEBUG
Definition game_rl.h:177
void draw_GameScreen_Texture(RenderTexture2D target_txtr, Gui_State gui_state, int fps_target, int current_anim_frame, Floor *current_floor, Path *game_path, Fighter *player, Room *current_room, Gamestate *gamestate, RingaBuf *rb_notifications, int current_x, int current_y, loadInfo *load_info, int saveslot_index, char current_save_path[1500], char seed[PATH_SEED_BUFSIZE+1])
Definition game_rl.c:3075
Gui_Floor_Group_Button_Index
Definition game_rl.h:164
@ BUTTON_ARTIFACTS
Definition game_rl.h:166
@ BUTTON_FLOOR_SAVE
Definition game_rl.h:167
@ BUTTON_FLOOR_EQUIPS
Definition game_rl.h:165
@ BUTTON_FLOOR_STATS
Definition game_rl.h:168
#define GUI_FLOOR_GROUP_BUTTONS_MAX
Definition game_rl.h:171
#define GUI_SHOP_LAYOUT_GROUPS_MAX
Definition game_rl.h:112
Gui_Debug_Selection_Index
Definition game_rl.h:185
@ GUI_DEBUG_FIGHTER
Definition game_rl.h:186
@ GUI_DEBUG_FLOOR
Definition game_rl.h:187
Gui_Fight_Group_Button_Index
Definition game_rl.h:123
@ BUTTON_EQUIPS
Definition game_rl.h:126
@ BUTTON_SPECIAL
Definition game_rl.h:125
@ BUTTON_CONSUMABLES
Definition game_rl.h:127
@ BUTTON_FIGHT
Definition game_rl.h:124
@ BUTTON_STATS
Definition game_rl.h:128
#define GUI_TREASURE_GROUP_BUTTONS_MAX
Definition game_rl.h:160
#define GUI_TXTFIELD_GROUP_BUTTONS_MAX
Definition game_rl.h:72
void setArtifactSprite(Artifact *a)
Takes a Artifact pointer and prepares its sprite field by copying it line by line from artifacts_spri...
Definition game_rl.c:558
#define GUI_DEBUG_FIGHTER_LAYOUT_GROUPS_MAX
Definition game_rl.h:203
#define GUI_SPECIAL_GROUP_BUTTONS_MAX
Definition game_rl.h:142
Gui_TxtField_Group_Button_Index
Definition game_rl.h:67
@ BUTTON_CLASS_TXTFIELD
Definition game_rl.h:68
@ BUTTON_NAME_TXTFIELD
Definition game_rl.h:69
Gui_GamePick_Group_Button_Index
Definition game_rl.h:76
@ BUTTON_NEW_GAME
Definition game_rl.h:77
@ BUTTON_LOAD_GAME
Definition game_rl.h:78
void setEnemySprite(Enemy *e)
Takes a Enemy pointer and prepares its sprite field by copying it line by line from enemies_sprites,...
Definition game_curses.c:1623
#define GUI_SHOP_OTHERS_GROUP_BUTTONS_MAX
Definition game_rl.h:119
void setChestSprite(Chest *c)
Takes a Chest pointer and prepares its sprite field by copying it line by line.
Definition game_curses.c:1708
void setBossSprite(Boss *b)
Takes a Boss pointer and prepares its sprite field by copying it line by line from bosses_sprites,...
Definition game_curses.c:1643
#define GUI_SAVESLOTPICK_GROUP_BUTTONS_MAX
Definition game_rl.h:102
void ToggleFullScreenWindow(int w_W, int w_H)
Definition game_rl.c:637
#define GUI_DEBUG_GROUP_BUTTONS_MAX
Definition game_rl.h:181
S4C_Color palette[33]
Declares S4C_Color array for palette.
Definition palette.c:3
Represents the entity initialised from a artifactClass.
Definition game_core.h:549
Represents the entity initialised from a bossClass.
Definition game_core.h:1202
Represents the entity initialised from a chestClass.
Definition game_core.h:1555
Holds a certain qty of a consumableClass.
Definition game_core.h:500
Represents the entity initialised from a enemyClass.
Definition game_core.h:1161
Represents the entity initialised from a equipClass.
Definition game_core.h:1414
Represents the entity containing an Equip instance.
Definition game_core.h:1469
Represents the entity initialised from a fighterClass.
Definition game_core.h:1091
Represents the entity initialised from a floorClass.
Definition game_core.h:1823
Holds arguments for a game.
Definition game_core.h:1897
GameScreen currentScreen
Definition game_rl.h:210
bool game_won
Definition game_rl.h:216
Gui_Button_Group floor_buttons
Definition game_rl.h:226
Gui_Button_Group saveslotpick_buttons
Definition game_rl.h:220
Gui_Button_Group treasure_buttons
Definition game_rl.h:225
Gui_Button_Layout shop_buttons
Definition game_rl.h:224
Gui_Button_Group special_buttons
Definition game_rl.h:222
Vector2 mouse
Definition game_rl.h:212
Gui_Button_Group equips_buttons
Definition game_rl.h:223
Gui_Button_Layout debug_fighter_buttons
Definition game_rl.h:230
float gameScreenWidth
Definition game_rl.h:208
Gui_Button_Group debug_buttons
Definition game_rl.h:229
Gui_Debug_Selection_Index debug_selection
Definition game_rl.h:228
float scale
Definition game_rl.h:207
float gameScreenHeight
Definition game_rl.h:209
Gui_Button_Group classpick_buttons
Definition game_rl.h:219
int framesCounter
Definition game_rl.h:211
Gui_Button_Group fight_buttons
Definition game_rl.h:221
Gui_Theme theme
Definition game_rl.h:214
Vector2 virtualMouse
Definition game_rl.h:213
Gui_Button_Group gamepick_buttons
Definition game_rl.h:218
int selectedIndex
Definition game_rl.h:215
Gui_Button_Group txtfield_buttons
Definition game_rl.h:217
Color bg_color
Definition game_rl.h:48
Color txt_color
Definition game_rl.h:49
Holds the state of game progression.
Definition game_core.h:1355
Represents the entity initialised from a roomClass.
Definition game_core.h:1768
Contains loaded values to pass to initRoom().
Definition game_core.h:1876