Many new settings to support the new state machine functionality.

This commit is contained in:
Joe Kearney 2025-03-01 06:09:51 -06:00
parent 908bdbba35
commit 47822bbdec
11 changed files with 84 additions and 21 deletions

View file

@ -24,8 +24,6 @@
#include "Weapons.h"
#define MAX_HEALTH 10
//! Implemented according to the 2024-07-20 "KTag Teams Compatibility Matrix".
typedef enum
{
@ -137,6 +135,7 @@ typedef struct
uint8_t My_Health;
WeaponID_t My_Weapon;
uint8_t My_Shield_Strength;
uint8_t Max_Health;
uint32_t Time_Remaining_in_Game_in_ms;
uint32_t Time_Remaining_Until_Countdown_in_ms;
uint16_t Shots_Fired;
@ -163,6 +162,36 @@ __attribute__((always_inline)) inline void Set_Health(uint8_t health)
}
}
__attribute__((always_inline)) inline uint8_t Get_Max_Health()
{
if (KTAG_Game_Data.Max_Health == 0)
{
// Initialize from settings.
uint8_t max_health;
if (SETTINGS_get_uint8_t(SYSTEMK_SETTING_MAX_HEALTH, &max_health) == SYSTEMK_RESULT_SUCCESS)
{
KTAG_Game_Data.Max_Health = max_health;
}
else
{
KTAG_Game_Data.Max_Health = 100;
}
}
return KTAG_Game_Data.Max_Health;
}
__attribute__((always_inline)) inline void Set_Max_Health(uint8_t health)
{
KTAG_Game_Data.Max_Health = health;
// Limit current health to max health.
if (KTAG_Game_Data.My_Health > health)
{
KTAG_Game_Data.My_Health = health;
}
}
__attribute__((always_inline)) inline void Reduce_Health(uint8_t reduction)
{
if (reduction < KTAG_Game_Data.My_Health)