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
- Compatibility
- Performance
- UI and audio
- Fixes
- Maps
Tanxl changes
In this version, we have launched a brand-new character action system and remade texture images.
In the next version, we will fully reset all unqualified art content, and launch the beta version of protagonist interaction quests and character dialogue.
Game Content Updates
Enabled new action textures for lateral, downward and upward movement of the protagonist, and cleaned up all old version action texture resources.
Added new textures for the protagonist facing upward and sideways, and finely adjusted the texture details of the protagonist facing downward.
Temporarily disabled the protagonist’s blinking action to optimize the stability of action performance.
The audio system newly adds the function of switching background music by map area, and supports custom exclusive background music for different areas.
- Interface visual optimizationGame buttons add customizable effects for visibility, pressed color and disabled color to improve the recognition of interface interaction.
- Font display optimizationFixed the problem of abnormal Chinese display, cleared the font cache when releasing fonts, and avoided stuttering caused by repeated loading.
Game Engine Updates
Draw Layer Module
Added an interface to obtain the current active action.
Removed the flip configuration synchronization in the bound action callback, and synchronously updated the flip configuration when updating actions.
Added interfaces for resetting sub-layer indexes and sub-layer texture counts.
Added texture flip control function.
The scene display interface for transition scenes adds support for multi-layer drawing.
Enhanced null pointer check and boundary check during drawing.
Fixed the parameter error problem of the reusable texture setting function.
Added validity checks for multiple shader programs.
Removed variables for storing the initialization status of each sub-layer.
All extended layers share the same vertex array object.
Fixed the issue that the texture reloading function only reloads textures of the current sub-layer.
All extended layers are changed to share one shader program.
The draw layer texture class adds cleanup functions and texture quantity acquisition functions.
The draw layer class adds the function of querying the number of sub-layers.
Completed the implementation of multi-shader program and dynamic texture storage functions.
Added move constructor for draw layer texture class.
Added null pointer check for the layer drawing interface.
Removed the game scene class.
Fixed incomplete texture number check in the reusable texture setting interface.
Fixed a spelling error.
Draw Module
Enabled new action textures for lateral, downward and upward movement, and cleaned up all old version action textures.
Removed two unused shader program objects.
Fixed the problem that the title image cannot be blocked when switching pages.
Split out the subtitle initialization interface.
Prohibited copy and move operations.
Managed map drawing information with smart pointers.
Rendering Module
Optimized header file inclusion to improve cross-platform compilation compatibility.
Removed constructors and class inheritance of static classes.
Added destruction of pre-link objects after shader object linking.
Return immediately if texture loading fails.
Added move constructor and move assignment operator for reusable texture structure; deleted copy constructor and copy assignment operator.
Action / Action Loop Module
Temporarily disabled the blinking action.
Added texture flip support to the player vertex shader.
Added texture flip control function to the action loop module.
Removed one unused private function.
Changed the interface for adding textures through containers from value passing to reference passing.
Optimized the efficiency of the action start function.
Storage Module
Fixed the problem that macros controlling console output cannot correctly manage output content.
Fixed the problem that static classes can still be copied or moved.
Pre-allocated string capacity for string combination interfaces to avoid repeated memory allocation.
Removed all unreachable return statements.
Refactored global namespace functions into static classes.
Hint Module
Added constant modifiers to the string acquisition interface.
Simplified the judgment chain for font reset.
Fixed the problem that internal language settings were not synchronously updated when resetting fonts.
Added functions to load hint text from files.
Removed redundant variables for marking whether hint text is loaded successfully.
Item Module
Renamed the function for clearing currency in the money component to avoid ambiguity.
Simplified the logic of character healing, damage judgment and death judgment.
Managed functional components of game character class and main character variables with smart pointers.
Completed the function of removing equipment according to slot index.
Fixed the problem of wrong values used in the item texture adding interface.
Changed the function of updating equipment bonus values to private.
Added null pointer processing for acquiring attack and defense values.
Input Module
Removed residual references to the audio module.
Fixed the problem of initializing static variables with non-static variables in the input state acquisition interface.
Fully decoupled dependencies on the audio module.
Font Module
Pre-allocated space during font initialization to avoid frequent memory allocation.
Cleared font cache when releasing all fonts.
Added validity check of font library when the destructor is called.
Added out-of-bounds detection for the interface of obtaining UI characters.
Refactored the font management class into a singleton class.
Fixed bugs causing abnormal Chinese display.
Game Button Module
Added visibility parameters to the button constructor.
Added read and write interfaces for button visibility, pressed color and disabled color.
Supplemented button state operation interfaces in the button management class.
Added pressed state color, disabled state color and visibility variables to button visual attributes.
Added enumeration classes for button states.
Added private validity check functions for button numbers.
Coordinate Module
Added index out-of-bounds check for coordinate functions.
Overloaded the unary minus operator for coordinate classes.
Added division-by-zero detection for division operations.
Fixed the timing problem of parameter verification in the coordinate conversion class constructor.
Extracted floating-point comparison tolerance as class member constants.
Added error handling when division by zero occurs in coordinate calculation.
Merged redundant overloaded calculation functions and deleted redundant versions.
Audio Module
Added the function of switching background music according to map areas.
Added functions to set exclusive background music for designated map areas.
Added interfaces for acquiring and setting the current map area number.
Removed unused redundant functions.
Optimized parameter passing efficiency of audio playback interfaces.
Fixed a potential division-by-zero problem.
Added delayed initialization observer function; the observer class acquires singletons through static functions.
Service Module
Added configuration for STEAM friends, cloud storage, leaderboards, remote storage, network functions and shop functions.
Removed BETA test related functions.
Removed language-related functions of the shop manager.
Removed the leaderboard manager.
Completed the functional definition of remote storage.
Completed the functional definition of the friend system.
Optimized the achievement observer interface and added removal judgment interface.
Map / Map Data Module
Split the map management module from the engine management module.
Added auxiliary functions for safely parsing strings into integers.
Fixed the overflow problem when setting map length.
Used smart pointers to manage map structure data and map configuration data.
Optimized the efficiency of acquiring map units by specified coordinates.
Console Module
Fixed the problem of using obsolete variables when switching pages.
Reduced the use of magic numbers in input detection.
Event Module
Changed parameters of event management interfaces to constant references to avoid copying.
Dialogue Module
Managed dialogue data containers with smart pointers.
Engine Management Module
Added enumeration of engine initialization status codes.
Added management functions for enhanced inventory systems.
Documentation Related
Created a unified document directory and supplemented detailed introductions for the storage module and map module.
Source
Changelog.gg summarizes and formats this update. How we read updates.
