Skip to content

Releases: jgabaut/helapordo

1.4.11 - Juicy raylib build refactor

10 Aug 11:52
Compare
Choose a tag to compare

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 the Floor
    • Improved colors for display_floor_layout(), display_explored_layout()
  • Add ROOM_VIEW
  • Add SAVES_PICK
  • Add Gui_State
  • Add Gui_Button
  • Added room init on floor_kls
  • Added Gamestate prep for rl 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 for rl build
  • Fix: update tutorial text to drop Story mode mention
  • Fix: update rl tutorial
  • Fix: proper transform on virtualMouse
  • Fix: use PRId64 to print int64_t blob_size in readSerGamestate()
  • Fix: install doesn't try copying invalid .c file from ringabuf/src

Changed

  • Factor out draw and update functions to game_rl.c
  • Handle Floor regen by passing double pointers to update_GameScreen()
  • Rename GAMEPLAY screen to FLOOR_VIEW
  • Roll seed for rl build
  • Prep current_save_path for rl build
  • Push current floor on kls_t, set starting room as explored
  • Init Path, Fighter for rl build
  • Pressing R also resets Path and Player
  • Moved animation to ROOM_VIEW, only for Enemy 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 to 0.4.5, turning on the block of Koliseo usage while it has an active Koliseo_Temp
  • Debug build uses Koliseo's caller location extension
  • Bump invil to 0.2.16
  • Bump s4c-scripts to 0.1.2
  • Bump sprites4curses to 0.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

14 Jun 13:03
5d7bbb7
Compare
Choose a tag to compare

Changed

  • The raylib build gets to see more of the lower APIs thanks to new notifications interface
  • Drop s4c-gui inclusion for raylib build
  • Trim gameloop_rl(), use hlpd_getopts() and hlpd_reset_logfile()
  • Use texture rendering to scale the whole texture
  • Changed some error messages for save loading

Fixed

  • Add release_data.o to make clean
  • Refactor hlpd_default_keybinds and other places needed to build with raylib

Notes

  • Add sizeof(SerGamestate), sizeof(SerSaveHeader) to const.c, const_rl.c anvil tests
  • Use int64_t for start_time in SerGamestate, instead of platform-specific-width clock_t
  • Use int32_t for a couple of SerChest values
  • Bump HELAPORDO_BINSAVEFILE_VERSION to 0.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

02 Jun 20:56
6ce2f7f
Compare
Choose a tag to compare

Added

  • Embed info on previous releases for later use
  • WIP: Add plot_line_in_ncurses()
  • Added format macros for more Ser structs, for hlpd-save2l
  • Add Notification to hold state for enqueue_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
  • 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 using retry()
  • Slim down gameloop() by collecting some preparation steps in new functions
  • d in debug_generic() prints release data (currently unreachable)
  • Refactor to drop notify_win argument in lower interfaces
  • Refactor display_notification() to enqueue_notification()
  • Increase terminal size requirement for warning
  • Increase notification window size
  • Use s4c_display_sprite_at_coords() instead of s4c_animate_rangeof_sprites_at_coords() to handle SIGINT while on animation screen

Fixed

  • Fix: load roomscompleted for roomsDone
  • Fix: load floorscompleted for floors_done
  • Fix: use int32_t for status field in Ser structures

Notes

  • Add ringabuf at 0.0.4
  • Pass color to printStatusText()
  • Drop Story, Standard from Gamemode
  • Drop -s to run with Story mode
  • Drop textfile save/load interfaces
  • Drop loreCounter from Path, SetPath
  • Drop HELAPORDO_SAVEPATH_1

1.4.8 - Keybind schemas, transparent mode, fixes

17 May 11:24
f9821ac
Compare
Choose a tag to compare

What's Changed

Added

  • Experimental: improved TUI for pickClass(), pickName() using s4c-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
  • 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 use VIM_KEYS at start, -w to use WASD_KEYS at start
    • Closes #88
  • 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 for reset_color_pairs(), which is an extension to ncurses. It may be available when building using ncurses's ABI 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.
    • Closes #87
  • Collect BSP_Room tree for each bsp gen in gamestate_kls
    • Currently only used by dbg_BSP_Room() on the root
  • 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 in ser.h
  • Renamed ctrl_c_handler() to hlpd_sigint_handler()

Fixed

  • Fix: proper check for ncurses version for log
  • Fix: clear gamestate->current_room after finishing one
  • Fix typo in header
  • Fix: drop useless left/right pick for get_saveslot_index()
  • Fix: move anvil__helapordo.h inclusion to game_utils.h
    • Should make the starting info show anvil info instead of Built without anvil incorrectly
  • Fix: place player at home coords with -X after Boss kill

Notes

  • Bump sprites4curses to 0.4.5
  • Dropped .md extension from LICENSE
  • Adds s4c-gui at 0.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

29 Apr 15:36
Compare
Choose a tag to compare

1.4.6 - Add SIGINT handler, experimental bsp floor gen

29 Apr 15:31
cef8d44
Compare
Choose a tag to compare

What's Changed

Added

  • Add SIGINT handler
    • Try to free the arenas when Ctrl+C is received
  • 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

Changed

  • Add from_bsp field to Floor
  • Enlarge seed field in Path by 1
  • Update experimental binary savefile version to 0.0.3
  • Chore: recompute floor area in floor_set_room_types() with G_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 in raylib build to toggle floor layout render
  • Chore: fix wrong doxygen comments for Path and SerPath
  • Bump koliseo to 0.4.3
  • Bump s4c-scripts to 0.1.1
  • Bump invil to 0.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

19 Apr 00:48
2ea157a
Compare
Choose a tag to compare

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
  • Add hlpd_rand(), G_RNG_ADVANCEMENTS, gen_random_seed(), hlpd_hash()
  • Add is_seeded to Gamestate to handle seeded runs
    • Seeded runs are started with -S <seed>
  • Add G_RNG_ADVANCEMENTS value reset section to prep_Gamestate()
  • Add -D to use current dir for saves
    • When -D is not present, default directory is $HOME/helapordo-local
  • 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 from Gamestate
    • To use current directory for saves/files, run with -D
  • Bump amboso to 2.0.6
  • Bump invil to 0.2.12
  • Bump koliseo to 0.4.2
  • Upgraded helapordo.doxyfile for doxygen 1.10

Fixed

  • Fix cases where loading/saving an Equip could fail because its perksCount was == EQUIPPERKSMAX
    • Closes #79
    • May need further inspection... Seems good
  • Fix cases where loading a zero-initialised Room led to failed enemy index read
    • ser_Room() sets class as BASIC when passed Room is NULL, rather than letting 0 be used for the class field
  • Fix: move enemyTotal randomisation call in initRoom() into the ENEMIES class case
  • Fix: updateSelectedSpecialW() iteration index
  • 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 with G_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

25 Mar 22:13
Compare
Choose a tag to compare

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.
    • 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

Changed

  • Add --enable-anvil configure option to allow easy building without anvil
    • Should improve #52 considerably. Switching the default value for the enable flag could be considered.
  • Bump koliseo to 0.4.1
  • Use kls_conf_init() to prep the used Koliseos
    • Now, only the debug build uses KLS_Region.
    • This should make the release version avoid all that extra jazz on the arena.
  • Added seed field to Path.
  • Updated installer to 0.1.2
    • Now creates hlpd-1, hlpd-2, hlpd-3 directories, used for Saveslot handling.
  • Added FLOORMENU_SAVE to saveType.
  • Updated const.c test
  • Bump amboso to 2.0.5
    • Should improve #52 by using a more recent bash on macOS, if the shell setup was done

Fixes

  • Use strlen() for whoami 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

22 Feb 06:09
969447c
Compare
Choose a tag to compare

What's Changed

  • Drop rooms.h circular dependency on helapordo.h
  • Refactor:
    • Slim helapordo.h to the bare minimum
    • New files
    • New subdirectories
    • Improved Makefile.am configuration ambiguity (maybe)
  • Bump amboso to 2.0.4
  • Bump invil to 0.2.8
  • Rough implementation of FLOORS_H declarations for raylib 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

09 Feb 02:51
6737595
Compare
Choose a tag to compare

What's Changed

  • Check screen size before save pick
  • Drop forced KLS_DEBUG_CORE from ncurses build
  • Define NCURSES_NO_PADDING
  • Add GameScreen
  • Bump sprites4curses to 0.4.4
  • Define S4C_UNCHECKED
  • Add NOGDI, NOUSER, WIN32_LEAN_AND_MEAN to use KLS_DEBUG_CORE on mingw32 raylib build
  • Bump koliseo to 0.4.0
  • Bump amboso to 2.0.3
  • Bump invil to 0.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