start turret

This commit is contained in:
2025-06-10 16:29:17 +02:00
parent 79c8b747cd
commit a17e3abbff
17 changed files with 213 additions and 68 deletions

64
main.c
View File

@@ -24,7 +24,6 @@ typedef struct GameState {
GameState gameState;
int loadGameState(char *filename, Player *plr) {
printf("hello from load\n");
fflush(stdout);
FILE *gameSave = fopen(filename, "rb");
if (gameSave) {
@@ -154,18 +153,6 @@ int init() {
loadItems(mainRenderer);
loadEntities(mainRenderer);
Entity entTest;
memset(&entTest, 0, sizeof(Entity));
entTest.tileRect.x = 4;
entTest.tileRect.y = 5;
entTest.renderRect.w = TILE_SIZE;
entTest.renderRect.h = TILE_SIZE;
entTest.target.x = 0;
entTest.target.y = 0;
entTest.health = 100;
entTest.type = GHOST;
add_entity(&entities, entTest);
setupTiles();
// for (ItemType i = 0; i < ITEMREGISTRY_SIZE; i++) {
@@ -312,6 +299,25 @@ int processEvent(SDL_Event e) {
case SDLK_F10:
renderAtlas = !renderAtlas;
break;
case SDLK_F11:
printf("Enemy is at tile X:%d, Y:%d\n", entities.entities[0].tileRect.x,
entities.entities[0].tileRect.y);
break;
case SDLK_F2:
Entity entTest;
memset(&entTest, 0, sizeof(Entity));
entTest.tileRect = player.tileRect;
entTest.renderRect.w = TILE_SIZE;
entTest.renderRect.h = TILE_SIZE;
entTest.target.x = -1;
entTest.target.y = -1;
entTest.health = 100;
entTest.type = GHOST;
entTest.health = 100;
add_entity(&entities, entTest);
break;
case SDLK_F4:
Tile *tile = &tileMap[playerTileY][playerTileX];
break;
@@ -620,8 +626,28 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char *args[])
running = processEvent(e);
}
entities.entities[0].target = player.tileRect;
if (animationStep % 60 == 0) {
for (int i = 0; i < entities.activeCount; i++) {
int x = player.tileRect.x;
int y = player.tileRect.y;
x += (rand() % 10) - 5;
y += (rand() % 10) - 5;
if (x < 0) {
x = 0;
}
if (y < 0) {
y = 0;
}
if (x >= MAP_WIDTH) {
x = MAP_WIDTH - 1;
}
if (y >= MAP_HEIGHT) {
y = MAP_HEIGHT - 1;
}
entities.entities[i].target.x = x;
entities.entities[i].target.y = y;
}
}
updateItems();
updateEntities();
updatePlayer(&player);
@@ -723,10 +749,10 @@ void genInitMap() {
if (baseType != BGType_WATER_SHALLOW && baseType != BGType_WATER_DEEP) {
if (oreNrm > 0.86) {
double sub = (oreNrm - 0.86) / (1.0 - 0.86);
if (sub < 0.25) finalType = BGType_PLATINUM_ORE;
else if (sub < 0.50) finalType = BGType_GOLD_ORE;
else if (sub < 0.80) finalType = BGType_SILVER_ORE;
else finalType = BGType_IRON_ORE;
if (sub < 0.25) finalType = BGType_IRON_ORE;
else if (sub < 0.50) finalType = BGType_SILVER_ORE;
else if (sub < 0.80) finalType = BGType_GOLD_ORE;
else finalType = BGType_PLATINUM_ORE;
}
}