In this update15
Full notes
Full Tanxl update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Gameplay
- UI and audio
- Maps
- Performance
- Fixes
- Events
Tanxl changes
Game Update Log
The engine part of the game is now more stable than ever before. The next update will include the expansion of explorable areas.
Game Content Updates
Added two new pink flower textures
Changed the road texture with manhole covers to the single-manhole cover texture
Removed the game guide texture
Added and replaced multiple audio files
Fine-tuned the initial map
Reduced the number of walls outside the main entrance of the protagonist's house
Game Engine Updates
Render Layer Module
Added a render layer management class
Removed the button render layer class
Fixed inconsistent memory management of the scene class
Bound the action interface with dynamic uniform variable settings
Set the destructor of the render layer class as a virtual function
Added a uniform variable setting interface for four integer variables
Prohibited copying and moving of the render layer class
Render Module
Adopted the render layer management class to manage layers
Added mid-frame related management to the game state management class
Added the function to set references to related managers
The game state management class fully took over the state management in the render module
Split the game screen display interface into configuration and display interfaces
Removed all functions related to game process control
Removed unnecessary header file includes
Removed the instance data structure and related functions
Merged the game map layer and the sub-map layer into one single layer
Implemented button text using the internal functions of the game button class
Added an interface to set the current window
Removed the window pointer parameter of the scene rendering interface
Temporarily added a pointer to the old version of the window
Moved the close detection and event handling during a single game screen rendering to the outside
Removed the window size parameters of the constructor and instance acquisition function
Removed the window size setting callback in the namespace
Removed the instantiated coordinate array in the namespace
Game Button Module
Optimized the number of mouse coordinate calculations in the button state update function
Merged the mouse click handling function into the button update interface
Expanded the font-related logic in the button structure
Added the press position parameter to the button state update interface
Action Module
Added out-of-bounds data protection to the action start function
Modified the action image addition interface to use move semantics
Optimized the constructor initialization list
Removed variables used to record the number of action textures
Removed variables used to mark the no-operation state
Action Loop Module
Simplified the loop action calculation in the action start process
Storage Module
Renamed classes
Fixed the issue of abnormal garbled characters when reading local data
Optimized the efficiency of the combined sequence data structure
Reduced unnecessary copies in the string splitting and combining functions
Input Module
Made the controller dead zone a configurable feature
Changed the data type of the recorded mouse press coordinates to double-precision
Hint Module
Obtained interface-related character data using enumerations
Game State Module
Optimized the length of variable names
Integrated game state management functions into the engine management module
Observer Module
Used smart pointers to manage the life cycle of observers
Map Data Module
Fixed the issue where the destructor did not release map data
Fixed a duplicate initialization issue in the constructor
Added a string to represent the default map
Modified the data of the empty map
Added a check for empty map data to the map unit acquisition function
Fixed the compilation error of the last segment of map data
Added a helper function for deep copy
Changed the internal implementation of the block copying and reloading functions to use deep copy
Expanded the standard map data acquisition interface of the map class to no longer omit data
Used smart pointers and standard library containers to manage extended map data
Added the function to obtain structure data according to the map area enumeration
Added the function to obtain the storage number in the array according to the map area enumeration
Removed the three-parameter map data copy function and adjusted the related code
Expanded the map structure to add data cleaning function
Fixed the map group error that occurred when reloading the map
Audio Module
Changed the background music playback detection interface to a const reference
Fixed the logic error in the resume playback function
Fixed multiple double destruction issues
Added support for homepage background audio playback
Fixed the issue where the interface for obtaining the currently playing audio scene did not return a value
Added enumerations for multiple audio scenes
Engine Management Module
Added support for homepage background audio playback
Fixed the issue where the interface for obtaining the currently playing audio scene did not return a value
Removed all query functions in game state management
Removed the initialization function in game state management
Removed all intermediate variables used to obtain the game protagonist
Added the function to configure the game window size
Added operation support for the dialogue module
Texture Module
Removed references to deleted textures
Texture Management Module
Added error message output for texture loading failures
Item Module
Moved the definition of the equipment structure from the texture module to the item module
Rewrote the equipment component to support a larger number of equipment items
Added the function to clear all money to the money component
Service Module
Modified the parameters of the achievement detection function
Used smart pointers to manage the user item list
Re-enabled the callback function for obtaining inventory
Changed the player item container from a list to a vector
Partially refactored the inventory module functions for testing
Completed the refactoring of the inventory module
The inventory class no longer obtains inventory during construction
Added macros to control the output of inventory item data
Added the function to submit unlocked achievements in batches
Random Module
Made the random number generation interface directly return the value when the high and low values are equal
Added string pre-allocation to the random sequence generation interface
Console Module
Disabled the copy function
Font Module
Set the character texture generation interface as a const function
Added pointer validity check to the destructor of the font file library
Canceled the singleton setting of the font file library class
Revised macro names and removed unused macros
Added automatic line wrapping for non-dynamically rendered text functions
Coordinate Module
Added copy and move constructors
Added copy and move operator definitions
Added dereference operator definition
Redesigned the implementation of comparison operators
Changed the unary operator to return a reference
Window Management Module
Revised the name of the window management class
Changed from a singleton class to a normal class
Used smart pointers to manage windows
Added the function to obtain the raw pointer
Specified a custom deleter for the smart pointer of the window
Separated the window management function from the render module
Added viewport setting management related functions
Added keyboard input state query function
Transferred the responsibility of obtaining window size to the window management module
Dialogue Module
Fixed the error of the returned dialogue character ID in the dialogue start interface
Game Map Module
Added null pointer check to the map transparency update function
Added observer data processing to the destructor
Separated the data acquisition part of the map data reloading function into a new interface
Game Event Module
Set multiple functions as const functions
Event Module
Set the destructor of the game event class as a virtual function
Map 1 Shader
Fixed the issue of duplicate texture ID assignment
Unified the uniform variable data passed in by the three render layers
Other Modules
Synchronized changes related to the observer module
Synchronized smart pointer changes related to the render layer
Global/General Changes
Removed include guards from all source files
Added string-to-integer conversion information output in multiple places
Organized header file includes of each module
Merged the delta time module into the engine base class
Moved program version information to the engine base class
Source
Changelog.gg summarizes and formats this update. How we read updates.
