• 0.4.0 66bf6d47ea

    Version 0.4.0 Stable

    ZAdamMac released this 2024-06-01 23:57:48 -03:00 | 43 commits to main since this release

    Installation

    Installation requires you have the separate mspdebug tool installed.
    It is also possible to clone the full repository, switch to the head of branch v/0.4.0, and run make target-flash.

    1. Download the attached binary.
    2. Navigate to that directory in the terminal and run the command mspdebug tilib "prog ./PETI-0.4.0.out"

    v 0.4.0 - Sleep and Growth Update

    • Adds functionality to handle conditional evolution of the pet, in a simplistic early version:
      • If the pet's needs are relatively well met at the time evolution is checked for, it will evolve into the "high" evolution, else the low evolution.
      • The egg and the baby's first evolution evolve through this mechanism; the baby is hardcoded to evolve a total of three hours after hatching.
      • If the pet evolves to the special reserved "Death Identifier" the game state is reset. This is temporary.
      • StateMachine now contains a .OLD_STAGE_ID property that records the previous stage ID before the current evolution
    • Adds functionality that allows the pet to fall asleep between wall-clock times defined by their age group through game_manager.h
      • Sleeping pets do not have the game state recompute while sleeping and accordingly do not experience stat depletion.
      • Hunger and Fun degradation now occur retroactively when the pet wakes.
      • The main game screen displays a status icon and special pet animations when the pet is sleeping.
        • evo_data.h's struct Stage was ammended to add a animationSleeping character pointer that holds sleeping animations. This shares the limitation with all other animation data that font addressing is not currently implemented at this level.
        • Minor font changes for font16x16 to correct the misalignment of zazenkuchi's sleeping head from his body.
      • The Food and Minigame menus are not accessible when the pet is sleeping, as is appropriate.
        • menus/main_game.c/h were refactored to use a function-derived model similar to menu_generator in order to achieve this.
      • The baby pet now correctly naps one hour after the game is started, for one hour.
    • Rearranges the main game idle screen's menu to be more logically accessible to the player in terms of icon order.
    • Adds an icon to the main game menu that allows the pet to be put to bed by turning the lights off.
      • A pet that has freshly woken up will turn the lights back on.
    • A sleeping pet with the lights off will cause the screen to turn off after roughly 15 seconds.
      • A waking pet, or the human touching the buttons, will turn the screen back on.
    • Sets the egg delay correctly back to 5 minutes.
    • Fixes unreported bug that caused odd-numbered main menu menus to render the cursor on the bottom row one square earlier than it should.
    • Refactors the main_game screen to use the shared WORK_STRING mutable char array rather than per-function strings, for memory savings.
      • As a knock-on impact, this corrects #37
    • Refactors the metanimations to support a more animated sequence for the upper forms of the pet.
      • Exposed, and corrected, a bug in main_game.c's MG_computeLine() which caused large pets to explode when reversed.
    • Refactors the Stage structure so that pet stages can target metanimations
    • Adds support for the font files being defined in multiple areas
    • Adds font16x16_1.h, defining a second set of 255 useful pet glyphs.
    • Adds options to the debug menu used for testing evolution quickly.
    • Corrects a bug in display.c that was causing all font address evaluation to fail, meaning only each size's "font zero" could be used.
      • Updated all scenes to use the new addressible font logic instead of hardcoding FONT_ADDR_0 for pet sprites.
    • Corrects the bug in issue #38 that caused games of rockpapergame.c to be unplayable.
      • Added a technical debt item to address the deeper root cause in display.c's printText_Large function.
    • Removed printdeltas_Demo, printdeltas_Game, and printdeltas_Menu from the codebase, since none of them were used anymore
    • Display now gives a convenience function, DISPLAY_blankFrame which resets the contents of the DISPLAY_FRAME
    Downloads