moved code here. still needs to update gh
This commit is contained in:
67
terrarium_bk/terrarium/game.h
Normal file
67
terrarium_bk/terrarium/game.h
Normal file
@@ -0,0 +1,67 @@
|
||||
/******************************************************************************
|
||||
* game.h
|
||||
*
|
||||
* Exposes the core game logic and data.
|
||||
******************************************************************************/
|
||||
#ifndef GAME_H
|
||||
#define GAME_H
|
||||
|
||||
/*
|
||||
* This header declares functions/data for the Terrarium game.
|
||||
* Include it from both main.c and game.c.
|
||||
*/
|
||||
|
||||
#define MAX_PLANTS 40
|
||||
#define SHELF_COUNT 5 /* We'll display 5 shelves total */
|
||||
#define PLANTS_PER_SHELF 8 /* 8 plants per shelf => 40 plants total */
|
||||
#define GAME_TICK_INTERVAL_MS 200 /* Loop tick (ms) */
|
||||
|
||||
#define BASE_OXYGEN_PER_SECOND 0.1
|
||||
#define TAP_BONUS_OXYGEN 1.0
|
||||
#define BASE_PLANT_COST 10.0
|
||||
#define COST_MULTIPLIER 1.2
|
||||
|
||||
/*
|
||||
* Data Structures
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
char name[64]; /* e.g. "Snake Plant" */
|
||||
int active; /* 1 if purchased/visible, 0 if not */
|
||||
double productionRate; /* O2 per second contributed by this plant */
|
||||
} Plant;
|
||||
|
||||
/* Main Game State container */
|
||||
typedef struct {
|
||||
double oxygen; /* Current total oxygen currency */
|
||||
double plantCost; /* Cost to buy the next plant */
|
||||
Plant plants[MAX_PLANTS]; /* All 40 plants */
|
||||
int plantCount; /* How many plants are active */
|
||||
} GameState;
|
||||
|
||||
/*
|
||||
* Function Prototypes
|
||||
*/
|
||||
|
||||
/* Game lifecycle */
|
||||
void initGame(GameState *gs);
|
||||
void loadGame(GameState *gs);
|
||||
void saveGame(const GameState *gs);
|
||||
|
||||
/* Game logic */
|
||||
void updateGame(GameState *gs, double elapsedSeconds);
|
||||
void renderGame(const GameState *gs);
|
||||
void handleInput(GameState *gs, char input);
|
||||
|
||||
/* Timing: returns elapsed seconds since last call */
|
||||
double getElapsedTime(void);
|
||||
|
||||
/* Terminal / I/O helpers */
|
||||
void initTermios(int echo);
|
||||
void resetTermios(void);
|
||||
int kbhit(void);
|
||||
char getch(void);
|
||||
void clearScreen(void);
|
||||
|
||||
#endif /* GAME_H */
|
||||
|
||||
Reference in New Issue
Block a user