Releases: jgabaut/helapordo
1.4.11 - Juicy raylib build refactor
What's Changed
Added
- Add
display_floor_layout_with_player()
to have a still view of the Floor - Add
display_explored_layout_with_player()
to have a live view of theFloor
- Improved colors for
display_floor_layout()
,display_explored_layout()
- Improved colors for
- Add
ROOM_VIEW
- Add
SAVES_PICK
- Add
Gui_State
- Add
Gui_Button
- Added room init on
floor_kls
- Added
Gamestate
prep forrl
build - Added stats print to
ROOM_VIEW
- Added
rb_notifications
prep - Added rectangle for drawing notifications
- Added name/class drawing
- Added
CHANGELOG.md
Fixed
- Fix:
writeSerSaveHeader()
now tries to create a missing directory even when not forced - Fix: wrap
anvil
header inclusion forrl
build - Fix: update tutorial text to drop
Story
mode mention- Closes #101
- Fix: update
rl
tutorial - Fix: proper transform on
virtualMouse
- Fix: use
PRId64
to printint64_t
blob_size
inreadSerGamestate()
- Fix: install doesn't try copying invalid
.c
file fromringabuf/src
Changed
- Factor out draw and update functions to
game_rl.c
- Handle
Floor
regen by passing double pointers toupdate_GameScreen()
- Rename
GAMEPLAY
screen toFLOOR_VIEW
- Roll
seed
forrl
build - Prep
current_save_path
forrl
build - Push current
floor
onkls_t
, set starting room as explored - Init
Path
,Fighter
forrl
build - Pressing
R
also resetsPath
andPlayer
- Moved animation to
ROOM_VIEW
, only forEnemy
rooms - Use current enemy class for animation instead of a set
Zombie
class - Ending screen goes to quit
- Take name, class from CLI args for
rl
build - Refactor
hlpd_dbg_features()
- Bump
koliseo
to0.4.5,
turning on the block ofKoliseo
usage while it has an activeKoliseo_Temp
- Debug build uses
Koliseo
's caller location extension - Bump
invil
to0.2.16
- Bump
s4c-scripts
to0.1.2
- Bump
sprites4curses
to0.4.7
- Raylib build uses
S4C_QUIETER
to avoid frame drops due to transparent tiles in some animations
PR - feat: 1.4.11 Juicy raylib build refactor by @jgabaut
Full Changelog: 1.4.10...1.4.11
1.4.10 - Fix raylib mockup, bump save version
Changed
- The
raylib
build gets to see more of the lower APIs thanks to new notifications interface - Drop
s4c-gui
inclusion forraylib
build - Trim
gameloop_rl()
, usehlpd_getopts()
andhlpd_reset_logfile()
- Use texture rendering to scale the whole texture
- Changed some error messages for save loading
Fixed
- Add
release_data.o
tomake clean
- Closes #99
- Refactor
hlpd_default_keybinds
and other places needed to build withraylib
- Closes #94
Notes
- Add
sizeof(SerGamestate)
,sizeof(SerSaveHeader)
toconst.c
,const_rl.c
anvil
tests - Use
int64_t
forstart_time
inSerGamestate
, instead of platform-specific-widthclock_t
- Improves #80
- Use
int32_t
for a couple ofSerChest
values - Bump
HELAPORDO_BINSAVEFILE_VERSION
to0.0.5
PR - 1.4.10 - Fix raylib mockup, bump savefile version by @jgabaut
Full Changelog: 1.4.9...1.4.10
1.4.9 - Notifications overhaul
Added
- Embed info on previous releases for later use
- WIP: Add
plot_line_in_ncurses()
- Added format macros for more
Ser
structs, forhlpd-save2l
- Add
Notification
to hold state forenqueue_notification()
Changed
- Move default terminal color support behind a feature flag
- Now needs either
./configure --enable-default-background
to be used- or
HELAPORDO_SUPPORT_DEFAULT_BACKGROUND
to be defined
before building
- Closes #95
- Now needs either
- Binary file save/load does not require
-X
anymore. It's still prone to change, so future saves are not guaranteed to respect backwards compatibility. - Bsp floor generation does not require
-X
anymore. getopt()
is called only once per execution, rather than once per run when usingretry()
- Slim down
gameloop()
by collecting some preparation steps in new functions d
indebug_generic()
prints release data (currently unreachable)- Refactor to drop
notify_win
argument in lower interfaces - Refactor
display_notification()
toenqueue_notification()
- Closes #98
- Increase terminal size requirement for warning
- Increase notification window size
- Use
s4c_display_sprite_at_coords()
instead ofs4c_animate_rangeof_sprites_at_coords()
to handleSIGINT
while on animation screen
Fixed
- Fix: load
roomscompleted
forroomsDone
- Fix: load
floorscompleted
forfloors_done
- Fix: use
int32_t
for status field inSer
structures- Improves #80
Notes
- Add
ringabuf
at0.0.4
- Pass color to
printStatusText()
- Drop
Story
,Standard
fromGamemode
- Drop
-s
to run withStory
mode - Drop textfile save/load interfaces
- Drop
loreCounter
fromPath
,SetPath
- Drop
HELAPORDO_SAVEPATH_1
1.4.8 - Keybind schemas, transparent mode, fixes
What's Changed
Added
- Experimental: improved TUI for
pickClass()
,pickName()
usings4c-gui
- Add
GameOptions
for runtime settings- Can be changed at any time from menu (open with
m
). - Experimental: add new binfile for storing the settings
- Can be changed at any time from menu (open with
- Add
HLPD_Key
,hlpd_default_keybinds
as base to support customizable keybinds- For now, just a rigid set of 3 schemas is available (mutually exclusive):
ARROW_KEYS
,VIM_KEYS
,WASD_KEYS
. - Run with
-j
to useVIM_KEYS
at start,-w
to useWASD_KEYS
at start - Closes #88
- For now, just a rigid set of 3 schemas is available (mutually exclusive):
- Add optional usage of terminal's default colors (to support transparent background for the game).
- Run with
-b
to use this option at start - Needs support from your
ncurses
library forreset_color_pairs()
, which is an extension toncurses
. It may be available when building usingncurses
'sABI 6
.- Builds missing this support are unable to use this option. If your build is stuck with this option off, you may try to rebuild your
ncurses
library from source.
- Builds missing this support are unable to use this option. If your build is stuck with this option off, you may try to rebuild your
- Closes #87
- Run with
- Collect
BSP_Room
tree for each bsp gen ingamestate_kls
- Currently only used by
dbg_BSP_Room()
on the root
- Currently only used by
- Add WIP
draw_BSP_Room()
Changed
- Most curses menu wrap around
- When going up from first item or down from last, wrap to the other side
- Experimental: Use
int32_t
for enum types inser.h
- Updates #80
- Renamed
ctrl_c_handler()
tohlpd_sigint_handler()
Fixed
- Fix: proper check for
ncurses
version for log - Fix: clear
gamestate->current_room
after finishing one- Closes #86
- Fix typo in header
- Closes #85
- Fix: drop useless left/right pick for
get_saveslot_index()
- Closes #91
- Fix: move
anvil__helapordo.h
inclusion togame_utils.h
- Should make the starting info show
anvil
info instead ofBuilt without anvil
incorrectly
- Should make the starting info show
- Fix: place player at home coords with
-X
after Boss kill
Notes
- Bump
sprites4curses
to0.4.5
- Dropped
.md
extension fromLICENSE
- Adds
s4c-gui
at0.0.7
PR - 1.4.8 - Keybind schemas, transparent mode, fixes by @jgabaut
Full Changelog: 1.4.7...1.4.8
1.4.7 - Fix broken anvil tag for 1.4.6
Full Changelog: 1.4.6...1.4.7
1.4.6 - Add SIGINT handler, experimental bsp floor gen
What's Changed
Added
- Add
SIGINT
handler- Try to free the arenas when
Ctrl+C
is received
- Try to free the arenas when
- Add bsp implementation, based on mtsdurica's rendition of the popular algorithm
- With the author's permission, the code is relicensed under
GPL-3.0-only
, to have only one license for all the game sources. - Thanks to Matúš for its availability and politeness
- With the author's permission, the code is relicensed under
Changed
- Add
from_bsp
field toFloor
- Enlarge
seed
field inPath
by 1 - Update experimental binary savefile version to
0.0.3
- Improves #80
- Chore: recompute floor area in
floor_set_room_types()
withG_EXPERIMENTAL_ON == 1
- Floors generated with bsp will have a random position for
HOME
room - Use
enemy_area_ratio
to loop in enemy room placement for new floors- Floors generated with bsp will have relatively less enemies
Fixes
- Fix: drop repetitive done_loading log message
- Fix: avoid leaving the terminal messed up on binary savefile load errors
- Fix: free arenas in
initRoom()
for invalid classes BASIC, WALL - Fix: removed some UB
Notes
- Chore: use
-X
inraylib
build to toggle floor layout render - Chore: fix wrong doxygen comments for
Path
andSerPath
- Closes #83
- Bump
koliseo
to0.4.3
- Bump
s4c-scripts
to0.1.1
- Bump
invil
to0.2.13
PR - feat: 1.4.6 Handle SIGINT, add bsp floor layout gen by @jgabaut
Full Changelog: 1.4.5...1.4.6
1.4.5 - Save/load RNG state, add -S and -D flags
What's Changed
Note: all updates to currently experimental features are still only accessible when running with -X
flag.
Added
- Add logic to save/load the RNG state across runs
- Updates #80
- Add
hlpd_rand()
,G_RNG_ADVANCEMENTS
,gen_random_seed()
,hlpd_hash()
- Add
is_seeded
toGamestate
to handle seeded runs- Seeded runs are started with
-S <seed>
- Seeded runs are started with
- Add
G_RNG_ADVANCEMENTS
value reset section toprep_Gamestate()
- Add
-D
to use current dir for saves- When
-D
is not present, default directory is$HOME/helapordo-local
- When
- Add proof-of-concept binary tool for savefile handling
Changed
- Randomly generated seeds are now strings between 8 and 19 chars long
- Drop
src/utils/bin_saves.h
- Drop
is_localexe
fromGamestate
- To use current directory for saves/files, run with
-D
- To use current directory for saves/files, run with
- Bump
amboso
to2.0.6
- Bump
invil
to0.2.12
- Bump
koliseo
to0.4.2
- Upgraded
helapordo.doxyfile
fordoxygen
1.10
Fixed
- Fix cases where loading/saving an
Equip
could fail because itsperksCount
was== EQUIPPERKSMAX
- Closes #79
- May need further inspection... Seems good
- Fix cases where loading a zero-initialised
Room
led to failed enemy index readser_Room()
sets class asBASIC
when passed Room isNULL
, rather than letting0
be used for theclass
field
- Fix: move
enemyTotal
randomisation call ininitRoom()
into theENEMIES
class case - Fix:
updateSelectedSpecialW()
iteration index- Closes #81
- Fix: avoid restarting colors, window box in
draw_floor_view()
- Fix: partial fixes to errors for missing save directories
- By default, the game will try to use the global directory. The goal is not to fail if any needed directory is missing, as long as we can create it ourselves.
- Skip prep of
save.txt
withG_EXPERIMENTAL_ON == 1
PR - 1.4.5 Update logic to save/load RNG advancements, seeded runs, bump deps by @jgabaut
Full Changelog: 1.4.4...1.4.5
1.4.4 - Add experimental binary save, release build doesn't use KLS_Region
What's Changed
Added
-
Print run seed when exiting from
retry()
-
Experimental: these features are only available when running with
-X
flag.- Experimental features are bound to change soon. Don't expect full backwards-compatibility when using them.
- Icon indicators for when you have an equipped item
- The emojis can be turned off by passing
--enable-emoji=no
to./configure
when building. - Updates should be noted on #77.
- The emojis can be turned off by passing
- Save/Load using binary files
- Tailored to
Rogue
gamemode, whereas before save was not working in that mode - Added all
packed
SerXYZ
structures for saving/loading - Added
ser_XYZ/deser_XYZ()
functions for conversion - Updates should be noted on #66
- Tailored to
Changed
- Add
--enable-anvil
configure option to allow easy building withoutanvil
- Should improve #52 considerably. Switching the default value for the enable flag could be considered.
- Bump
koliseo
to0.4.1
- Use
kls_conf_init()
to prep the usedKoliseo
s- Now, only the debug build uses
KLS_Region
. - This should make the release version avoid all that extra jazz on the arena.
- Now, only the debug build uses
- Added
seed
field toPath
. - Updated
installer
to0.1.2
- Now creates
hlpd-1
,hlpd-2
,hlpd-3
directories, used forSaveslot
handling.
- Now creates
- Added
FLOORMENU_SAVE
tosaveType
. - Updated
const.c
test - Bump
amboso
to2.0.5
- Should improve #52 by using a more recent
bash
onmacOS
, if the shell setup was done
- Should improve #52 by using a more recent
Fixes
- Use
strlen()
forwhoami
push
PR - feat: 1.4.4 Add experimental binary save support, release build doesn't use KLS_Region by @jgabaut
Full Changelog: 1.4.3...1.4.4
1.4.3 - Refactor, interactive raylib demo
What's Changed
- Drop
rooms.h
circular dependency onhelapordo.h
- Refactor:
- Slim
helapordo.h
to the bare minimum - New files
- New subdirectories
- Improved
Makefile.am
configuration ambiguity (maybe)
- Slim
- Bump
amboso
to2.0.4
- Bump
invil
to0.2.8
- Rough implementation of
FLOORS_H
declarations forraylib
build
PR - feat: 1.4.3 Solve circular dependencies, refactor by @jgabaut
Full Changelog: 1.4.2...1.4.3
1.4.2 - Fix clang build, bump deps, drop static dir requirement
What's Changed
- Check screen size before save pick
- Drop forced
KLS_DEBUG_CORE
from ncurses build- Closes #71
- Define
NCURSES_NO_PADDING
- Add
GameScreen
- Bump
sprites4curses
to0.4.4
- Define
S4C_UNCHECKED
- Add
NOGDI
,NOUSER
,WIN32_LEAN_AND_MEAN
to useKLS_DEBUG_CORE
onmingw32
raylib
build - Bump
koliseo
to0.4.0
- Bump
amboso
to2.0.3
- Bump
invil
to0.2.6
- Fix
clang
warnings
PR - feat: 1.4.2 Drop runtime static dir dependency, add GameScreen, bump deps by @jgabaut
Full Changelog: 1.4.1...1.4.2