From fa7a158ec99be407c29711289349e2d732f95737 Mon Sep 17 00:00:00 2001 From: kts Date: Fri, 14 Mar 2014 14:51:41 -0700 Subject: [PATCH] The Mystery of the git Commit --- .gitignore | 1 + engine/map.c | 7 ++----- engine/states/state_test.c | 31 +++++++++++++++++++------------ engine/tile.c | 13 ++++++++++++- engine/tile.h | 3 ++- modules/test/CONF | 1 + modules/test/sprites/CONF | 8 ++++++++ modules/test/sprites/ground.png | Bin 262 -> 188 bytes modules/test/sprites/walls.png | Bin 0 -> 156 bytes modules/test/test.tsd | 3 +++ 10 files changed, 48 insertions(+), 19 deletions(-) create mode 100644 .gitignore create mode 100644 modules/test/sprites/walls.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a01ee28 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.*.swp diff --git a/engine/map.c b/engine/map.c index 0711be7..84dd532 100644 --- a/engine/map.c +++ b/engine/map.c @@ -1,4 +1,5 @@ #include "map.h" +#include "tile.h" #include #include @@ -124,11 +125,7 @@ int moveTile(struct Map *map, struct Tile *tile, float x, float y, float z) { //return 2; } else { removeTile(tile); // remove from current position - struct Tile *target_tile = map->tiles[tile_x][tile_y][tile_z]; - while (target_tile->next != NULL) { - target_tile = target_tile->next; - } - addTile(target_tile, tile); + appendTile(map->tiles[tile_x][tile_y][tile_z], tile); } } tile->x = target_x; diff --git a/engine/states/state_test.c b/engine/states/state_test.c index 5e1ae66..3a569ee 100644 --- a/engine/states/state_test.c +++ b/engine/states/state_test.c @@ -22,7 +22,13 @@ void initTestState() { int x,y,z; for (x=0;x < test_map->width;x++) { for (y=0;y < test_map->height;y++) { - test_map->tiles[x][y][0] = newTile(x, y, 0, getTileDataById(g_tile_data, 1, 0)); + test_map->tiles[x][y][0] = newTile(x, y, 0, getTileDataById(g_tile_data, 2, 0)); + } + } + + for (x=8;x < 9;x++) { + for (y=0;y < test_map->height;y++) { + test_map->tiles[x][y][1] = newTile(x, y, 1, getTileDataById(g_tile_data, 3, 0)); } } @@ -66,23 +72,23 @@ void processTestState(int delta) { while(s_accumulator >= g_tick_time.n) { if (key_press[0] == 1) { test_player_tile->set = 4; - moveTile(test_map, test_player_tile, -0.2f, 0.0f, 0.0f); - //moveTile(test_map, test_player_tile, -1.0f, 0.0f); + moveTile(test_map, test_player_tile, -0.1f, 0.0f, 0.0f); + //moveTile(test_map, test_player_tile, -1.0f, 0.0f, 0.0f); } if (key_press[1] == 1) { test_player_tile->set = 5; - moveTile(test_map, test_player_tile, 0.0f, 0.2f, 0.0f); - //moveTile(test_map, test_player_tile, 0.0f, 1.0f); + moveTile(test_map, test_player_tile, 0.0f, 0.1f, 0.0f); + //moveTile(test_map, test_player_tile, 0.0f, 1.0f, 0.0f); } if (key_press[2] == 1) { test_player_tile->set = 6; - moveTile(test_map, test_player_tile, 0.2f, 0.0f, 0.0f); - //moveTile(test_map, test_player_tile, 1.0f, 0.0f); + moveTile(test_map, test_player_tile, 0.1f, 0.0f, 0.0f); + //moveTile(test_map, test_player_tile, 1.0f, 0.0f, 0.0f); } if (key_press[3] == 1) { test_player_tile->set = 7; - moveTile(test_map, test_player_tile, 0.0f, -0.2f, 0.0f); - //moveTile(test_map, test_player_tile, 0.0f, -1.0f); + moveTile(test_map, test_player_tile, 0.0f, -0.1f, 0.0f); + //moveTile(test_map, test_player_tile, 0.0f, -1.0f, 0.0f); } if (test_accumulator > 4) { @@ -108,12 +114,13 @@ Our render state, called a variable amount of times per second. Make render call void renderTestState() { int x, y, z; for(z=0;z < test_map->depth;z++) { - for(x=0;x < test_map->width;x++) { - for(y=test_map->height-1;y >= 0;y--) { + for(y=0;y < test_map->height;y++) { + for(x=test_map->width-1;x >= 0;x--) { struct Tile *tile = test_map->tiles[x][y][z]; while(tile != NULL) { //printf("%f\n", tile->x); - int id = tile->data->id + (tile->set * 4) + tile->frame; + //int id = tile->data->id + (tile->set * 4) + tile->frame; + int id = tile->data->id; int pix_x = tile->x * g_module_spritesheets[tile->data->tid]->s_width; int pix_y = (tile->y * g_module_spritesheets[tile->data->tid]->s_height)/2; g_renderSprite(g_module_spritesheets[tile->data->tid], g_screen, id, pix_x, pix_y); diff --git a/engine/tile.c b/engine/tile.c index d0db174..1a52105 100644 --- a/engine/tile.c +++ b/engine/tile.c @@ -23,7 +23,18 @@ void freeTile(struct Tile *tile) { free(tile); } -void addTile(struct Tile* tile_target, struct Tile* new_tile) { +void appendTile(struct Tile *tile_target, struct Tile *new_tile) { + if (new_tile == tile_target) + return; + struct Tile *current_tile = tile_target; + while (current_tile->next != NULL) { + current_tile = current_tile->next; + } + current_tile->next = new_tile; + new_tile->prev = current_tile; +} + +void insertTile(struct Tile* tile_target, struct Tile* new_tile) { if (new_tile == tile_target) return; if (tile_target->next) { diff --git a/engine/tile.h b/engine/tile.h index 46e31bb..7f15b16 100644 --- a/engine/tile.h +++ b/engine/tile.h @@ -16,7 +16,8 @@ struct Tile { struct Tile *newTile(float x, float y, float z, struct TileData *data); void freeTile(struct Tile *tile); -void addTile(struct Tile* tile_target, struct Tile* new_tile); +void appendTile(struct Tile *tile_target, struct Tile *new_tile); +void insertTile(struct Tile* tile_target, struct Tile* new_tile); void removeTile(struct Tile* tile); #endif diff --git a/modules/test/CONF b/modules/test/CONF index b47962d..c90c5ec 100644 --- a/modules/test/CONF +++ b/modules/test/CONF @@ -13,6 +13,7 @@ sprites { ; key = TID, value = spritesheet for that TID 0 players 1 ground + 2 walls } ; list of playable characters for character creation chars { diff --git a/modules/test/sprites/CONF b/modules/test/sprites/CONF index 7b3977b..38c7740 100644 --- a/modules/test/sprites/CONF +++ b/modules/test/sprites/CONF @@ -15,3 +15,11 @@ ground { set 1 frame 1 } + +walls { + width 8 + height 16 + columns 1 + set 1 + frame 1 +} diff --git a/modules/test/sprites/ground.png b/modules/test/sprites/ground.png index 5e802ea2c840cd3c640d1bd3d689197205d1e131..d40fc247bf47536932d805406a9d4bae16805155 100644 GIT binary patch delta 160 zcmV;R0AK%x0=xl`B!7cRL_t(2k?oJ64Z|=LL|;Gl0%j(Kl|C>C^#~cklXZlSP#R$H zrNEG|E@0k*$W~G{8}!)ep6+z;7r-SX-m4Bj!)O)RhtVq0>H(6B@204ur~@G5De91B zzIErdHJoj?DS6tX(=BW>0Frbh*aSeZiJM+K6s>MI0g{e~rWuT9wuKKL#47XrB_e^()3hW+%BXESCs7L4# zYAY%x0f(vM0xJ+rs35c5((fk!|M`EWI0e6sa-gRM;K~eu*T_>U96(Ram6^NV61h+U zP;hBi6PWt`qa3~h>tIfca(THyCjd&86l0Y-c#Qx&r6PyRhnzG+ z(F9g2wTIV;%So>>Ia7p{vnP20AbTs+^pwS0sIVO?U kxSa_Qr2E;_Q#0tq2X`=7?n~f98vp{E