Added EquipTile/EQUIP. This distinguishes equipable items such as weapons, armour, rings, etc., from non-equipables such as keys and the like.
parent
770ad240e2
commit
b3a3831cd2
|
@ -200,7 +200,14 @@ void inventoryContext(int key_press) {
|
|||
case 'a':
|
||||
// Hi, ugly code.
|
||||
// TODO: make equipment just an Inventory.
|
||||
inventoryEquip(inventory, inventory->selected);
|
||||
switch (inventoryGetSelected(inventory)->tid) {
|
||||
case EQUIP:
|
||||
inventoryEquip(inventory, inventory->selected);
|
||||
break;
|
||||
case ITEM:
|
||||
// todo: applying item to another item or something?
|
||||
break;
|
||||
}
|
||||
//inventoryEquip(inventory, inventory->selected);
|
||||
//checkSlots( &(((struct PlayerTile*)player->data)->slots), &(((struct PlayerTile*)player->data)->used_slots),
|
||||
// &(((struct ItemTile*)(inventoryGetSelected(inventory)->data))->slots) );
|
||||
|
|
14
game.c
14
game.c
|
@ -30,8 +30,8 @@ int gameInit() {
|
|||
((struct PlayerTile*)player->data)->equipment.slots_per_row = 4;
|
||||
((struct PlayerTile*)player->data)->equipment.owner = player;
|
||||
|
||||
addToInventory( &((struct PlayerTile*)player->data)->inventory, newTile(ITEM, 1, 0, 0));
|
||||
addToInventory( &((struct PlayerTile*)player->data)->inventory, newTile(ITEM, 0, 0, 0));
|
||||
addToInventory( &((struct PlayerTile*)player->data)->inventory, newTile(EQUIP, 1, 0, 0));
|
||||
addToInventory( &((struct PlayerTile*)player->data)->inventory, newTile(EQUIP, 0, 0, 0));
|
||||
|
||||
//gameMoveTile(newTile(ITEM, 0, 4, 4), 4, 4);
|
||||
|
||||
|
@ -39,10 +39,12 @@ int gameInit() {
|
|||
allocateMap(¤t_map, 64, 64);
|
||||
floodMap(¤t_map, TILE_REPLACE, FLOOR, STONE);
|
||||
gameMoveTile(player, 2, 2);
|
||||
appendTile(&(current_map->matrix[4][4]), ITEM, 0);
|
||||
appendTile(&(current_map->matrix[3][4]), ITEM, 1);
|
||||
appendTile(&(current_map->matrix[2][4]), ITEM, 0);
|
||||
appendTile(&(current_map->matrix[6][4]), ITEM, 1);
|
||||
appendTile(&(current_map->matrix[4][4]), EQUIP, 0);
|
||||
appendTile(&(current_map->matrix[3][4]), EQUIP, 1);
|
||||
appendTile(&(current_map->matrix[2][4]), EQUIP, 0);
|
||||
appendTile(&(current_map->matrix[6][4]), EQUIP, 1);
|
||||
|
||||
appendTile(&(current_map->matrix[5][11]), ITEM, 0);
|
||||
|
||||
drawPath(¤t_map, TILE_APPEND, WALL, STONE, 6, 1, 8, 12);
|
||||
drawPath(¤t_map, TILE_APPEND, WALL, STONE, 12, 4, 7, 13);
|
||||
|
|
|
@ -206,6 +206,14 @@ void interfaceDraw() {
|
|||
attron(COLOR_PAIR(color) | curses_npcs[tile_id].attr);
|
||||
mvwaddch(screen, step_y-camera_offset_y, step_x-camera_offset_x, curses_npcs[tile_id].ch);
|
||||
attroff(COLOR_PAIR(color) | curses_npcs[tile_id].attr);
|
||||
break;
|
||||
case ITEM:
|
||||
color = curses_items[tile_id].fg * COLORS + curses_items[tile_id].bg;
|
||||
attron(COLOR_PAIR(color) | curses_items[tile_id].attr);
|
||||
mvwaddch(screen, step_y-camera_offset_y, step_x-camera_offset_x, curses_items[tile_id].ch);
|
||||
attroff(COLOR_PAIR(color) | curses_items[tile_id].attr);
|
||||
break;
|
||||
|
||||
break;
|
||||
}
|
||||
current_tile = current_tile->next;
|
||||
|
|
|
@ -203,6 +203,7 @@ void interfaceSetScale(float scale_x, float scale_y) {
|
|||
void scaleTiles(float scale_x, float scale_y) {
|
||||
setSpritesheetScale(&player_sprites, scale_x, scale_y);
|
||||
setSpritesheetScale(&item_sprites, scale_x, scale_y);
|
||||
setSpritesheetScale(&equip_sprites, scale_x, scale_y);
|
||||
setSpritesheetScale(&shadow_sprites, scale_x, scale_y);
|
||||
setSpritesheetScale(&door_sprites, scale_x, scale_y);
|
||||
setSpritesheetScale(&npc_sprites, scale_x, scale_y);
|
||||
|
@ -252,6 +253,7 @@ int interfaceInit() {
|
|||
|
||||
loadSpritesheetFromMemory(&player_sprites, player_images, player_images_length, 16, 32, TOTAL_CLASSES);
|
||||
loadSpritesheetFromMemory(&item_sprites, item_images, item_images_length, 16, 32, 16);
|
||||
loadSpritesheetFromMemory(&equip_sprites, equip_images, equip_images_length, 16, 32, 16);
|
||||
loadSpritesheetFromMemory(&shadow_sprites, shadow_images, shadow_images_length, 16, 32, TOTAL_CLASSES);
|
||||
loadSpritesheetFromMemory(&door_sprites, door_images, door_images_length, 16, 32, 16);
|
||||
loadSpritesheetFromMemory(&npc_sprites, npc_images, npc_images_length, 16, 32, 16);
|
||||
|
@ -344,7 +346,6 @@ void cameraDraw() {
|
|||
while (step_x < end_x) {
|
||||
step_y = player->y - ((struct PlayerTile*)player->data)->vision;
|
||||
while (step_y < end_y) {
|
||||
// TODO: draw the layer immediately in front of the player at partial translucency
|
||||
if (step_x >= 0 && step_y >= 0 && step_x < current_map->width && step_y < current_map->height) {
|
||||
struct Tile *current_tile;
|
||||
current_tile = &(current_map)->matrix[step_x][step_y];
|
||||
|
@ -367,10 +368,11 @@ void cameraDraw() {
|
|||
case DOOR:
|
||||
tile_id = tile_id*4;
|
||||
tile_id += ((struct DoorTile*)current_tile->data)->state;
|
||||
if (step_x == player->x && step_y == player->y+1)
|
||||
if (step_x == player->x && step_y == player->y+1) {
|
||||
drawScaledTransparentSprite(&door_sprites, tile_id, 0.75f, camera_surface, (step_x*door_sprites.s_width)-camera_offset_x, (step_y*door_sprites.s_height/2)-camera_offset_y);
|
||||
else
|
||||
} else {
|
||||
drawScaledSprite(&door_sprites, tile_id, camera_surface, (step_x*door_sprites.s_width)-camera_offset_x, (step_y*door_sprites.s_height/2)-camera_offset_y);
|
||||
}
|
||||
break;
|
||||
case PLAYER:
|
||||
drawScaledSprite(&shadow_sprites, 0, camera_surface, (step_x*shadow_sprites.s_width)-camera_offset_x, (step_y*shadow_sprites.s_height/2)-camera_offset_y);
|
||||
|
@ -380,6 +382,10 @@ void cameraDraw() {
|
|||
case ITEM:
|
||||
drawScaledSprite(&item_sprites, current_tile->id, camera_surface, (step_x*item_sprites.s_width)-camera_offset_x, (step_y*item_sprites.s_height/2)-camera_offset_y);
|
||||
break;
|
||||
case EQUIP:
|
||||
drawScaledSprite(&equip_sprites, current_tile->id, camera_surface, (step_x*equip_sprites.s_width)-camera_offset_x, (step_y*equip_sprites.s_height/2)-camera_offset_y);
|
||||
break;
|
||||
|
||||
}
|
||||
current_tile = current_tile->next;
|
||||
}
|
||||
|
@ -541,34 +547,93 @@ void interfaceDrawInventory() {
|
|||
y = i / inventory->slots_per_row;
|
||||
x = i - (inventory->slots_per_row*y);
|
||||
if (i == ((struct PlayerTile*)player->data)->inventory.selected) {
|
||||
drawScaledSprite(&item_sprites, current_item->id, new_surface, x*item_sprites.s_width, inventory_info+(y*item_sprites.s_width));
|
||||
drawScaledSpriteOutline(&item_sprites, current_item->id, new_surface, x*item_sprites.s_width, inventory_info+(y*item_sprites.s_width));
|
||||
switch (current_item->tid) {
|
||||
case ITEM:
|
||||
drawScaledSprite(&item_sprites, current_item->id, new_surface, x*item_sprites.s_width, inventory_info+(y*item_sprites.s_width));
|
||||
drawScaledSpriteOutline(&item_sprites, current_item->id, new_surface, x*item_sprites.s_width, inventory_info+(y*item_sprites.s_width));
|
||||
|
||||
interfaceDrawStringF(&font_mini, new_surface, ((struct ItemTile*)current_item->data)->name, inventory_width/2-(strlen(((struct ItemTile*)current_item->data)->name)*font_mini.width*font_mini.scale_x/2), 2);
|
||||
interfaceDrawStringF(&font_mini, new_surface, ((struct ItemTile*)current_item->data)->name, inventory_width/2-(strlen(((struct ItemTile*)current_item->data)->name)*font_mini.width*font_mini.scale_x/2), 2);
|
||||
break;
|
||||
case EQUIP:
|
||||
drawScaledSprite(&equip_sprites, current_item->id, new_surface, x*equip_sprites.s_width, inventory_info+(y*equip_sprites.s_width));
|
||||
drawScaledSpriteOutline(&equip_sprites, current_item->id, new_surface, x*equip_sprites.s_width, inventory_info+(y*equip_sprites.s_width));
|
||||
|
||||
interfaceDrawStringF(&font_mini, new_surface, ((struct ItemTile*)current_item->data)->required_slots, 0, 1*(font_mini.width*font_mini.scale_y));
|
||||
interfaceDrawStringF(&font_mini, new_surface, ((struct ItemTile*)current_item->data)->roll, 0, 2*(font_mini.width*font_mini.scale_y));
|
||||
interfaceDrawStringF(&font_mini, new_surface, ((struct EquipTile*)current_item->data)->name, inventory_width/2-(strlen(((struct EquipTile*)current_item->data)->name)*font_mini.width*font_mini.scale_x/2), 2);
|
||||
interfaceDrawStringF(&font_mini, new_surface, ((struct EquipTile*)current_item->data)->required_slots, 0, 1*(font_mini.width*font_mini.scale_y));
|
||||
interfaceDrawStringF(&font_mini, new_surface, ((struct EquipTile*)current_item->data)->damage_mod, 0, 2*(font_mini.width*font_mini.scale_y));
|
||||
interfaceDrawStringF(&font_mini, new_surface, ((struct EquipTile*)current_item->data)->armour_mod, (font_mini.width*font_mini.scale_x*(strlen(((struct EquipTile*)current_item->data)->damage_mod)+1)), 2*(font_mini.width*font_mini.scale_y));
|
||||
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
drawScaledTransparentSprite(&item_sprites, current_item->id, 0.50f, new_surface, x*item_sprites.s_width, inventory_info+(y*item_sprites.s_width));
|
||||
switch (current_item->tid) {
|
||||
case ITEM:
|
||||
drawScaledTransparentSprite(&item_sprites, current_item->id, 0.50f, new_surface, x*item_sprites.s_width, inventory_info+(y*item_sprites.s_width));
|
||||
break;
|
||||
case EQUIP:
|
||||
drawScaledTransparentSprite(&equip_sprites, current_item->id, 0.50f, new_surface, x*equip_sprites.s_width, inventory_info+(y*equip_sprites.s_width));
|
||||
break;
|
||||
}
|
||||
}
|
||||
current_item = current_item->next;
|
||||
i++;
|
||||
}
|
||||
|
||||
/* Equipment overlay */
|
||||
char *equipment_slots = slotsBuildTable(((struct PlayerTile*)player->data)->slots);
|
||||
|
||||
// TODO: have a slotsBuildSmallTable() that returns a shortened array of items.
|
||||
i = 0;
|
||||
x = 0;
|
||||
y = 0;
|
||||
while (i < 64) {
|
||||
if (equipment_slots[i]) {
|
||||
int j = 0;
|
||||
while (j < equipment_slots[i]) {
|
||||
if (x >= 6) {
|
||||
y++;
|
||||
x = 0;
|
||||
}
|
||||
interfaceDrawCharF(&font_mini, equipment_surface, i+64, x*item_sprites.s_width, (y+2)*item_sprites.s_width);
|
||||
x++;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
slotsFreeTable(equipment_slots);
|
||||
|
||||
/* Draw equipment */
|
||||
current_item = ((struct PlayerTile*)player->data)->equipment.tile;
|
||||
struct Inventory *equipment = &((struct PlayerTile*)player->data)->equipment;
|
||||
i = 0;
|
||||
char *current_item_slots;
|
||||
while (current_item) {
|
||||
current_item_slots = slotsBuildTable(((struct EquipTile*)current_item->data)->required_slots);
|
||||
y = i / equipment->slots_per_row;
|
||||
x = i - (equipment->slots_per_row*y);
|
||||
//drawScaledSprite(&equip_sprites, current_item->id, equipment_surface, x*equip_sprites.s_width, (y*equip_sprites.s_width));
|
||||
if (i == ((struct PlayerTile*)player->data)->equipment.selected) {
|
||||
drawScaledSprite(&equip_sprites, current_item->id, equipment_surface, x*equip_sprites.s_width, (y*equip_sprites.s_width));
|
||||
drawScaledSpriteOutline(&equip_sprites, current_item->id, equipment_surface, x*equip_sprites.s_width, (y*equip_sprites.s_width));
|
||||
} else {
|
||||
drawScaledTransparentSprite(&equip_sprites, current_item->id, 0.50f, equipment_surface, x*equip_sprites.s_width, (y*equip_sprites.s_width));
|
||||
}
|
||||
|
||||
current_item = current_item->next;
|
||||
i++;
|
||||
}
|
||||
|
||||
while (current_item) {
|
||||
y = i / equipment->slots_per_row;
|
||||
x = i - (equipment->slots_per_row*y);
|
||||
//drawScaledSprite(&item_sprites, current_item->id, equipment_surface, x*item_sprites.s_width, (y*item_sprites.s_width));
|
||||
if (i == ((struct PlayerTile*)player->data)->equipment.selected) {
|
||||
drawScaledSprite(&item_sprites, current_item->id, equipment_surface, x*item_sprites.s_width, (y*item_sprites.s_width));
|
||||
drawScaledSpriteOutline(&item_sprites, current_item->id, equipment_surface, x*item_sprites.s_width, (y*item_sprites.s_width));
|
||||
drawScaledSprite(&equip_sprites, current_item->id, equipment_surface, x*equip_sprites.s_width, (y*equip_sprites.s_width));
|
||||
drawScaledSpriteOutline(&equip_sprites, current_item->id, equipment_surface, x*equip_sprites.s_width, (y*equip_sprites.s_width));
|
||||
} else {
|
||||
drawScaledTransparentSprite(&item_sprites, current_item->id, 0.50f, equipment_surface, x*item_sprites.s_width, (y*item_sprites.s_width));
|
||||
drawScaledTransparentSprite(&equip_sprites, current_item->id, 0.50f, equipment_surface, x*equip_sprites.s_width, (y*equip_sprites.s_width));
|
||||
}
|
||||
|
||||
current_item = current_item->next;
|
||||
|
@ -1128,6 +1193,8 @@ void interfaceClose() {
|
|||
freeSpritesheet(&floor_sprites);
|
||||
freeSpritesheet(&door_sprites);
|
||||
freeSpritesheet(&wall_sprites);
|
||||
freeSpritesheet(&item_sprites);
|
||||
freeSpritesheet(&equip_sprites);
|
||||
|
||||
SDL_Quit();
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ struct Spritesheet {
|
|||
};
|
||||
struct Spritesheet player_sprites;
|
||||
struct Spritesheet item_sprites;
|
||||
struct Spritesheet equip_sprites;
|
||||
struct Spritesheet shadow_sprites;
|
||||
struct Spritesheet npc_sprites;
|
||||
struct Spritesheet door_sprites;
|
||||
|
|
|
@ -30,7 +30,7 @@ int inventoryEquip(struct Inventory *inventory, int selected) {
|
|||
if (i == selected) {
|
||||
char difference[64];
|
||||
char string[64];
|
||||
int type = slotsCanAdd(difference, ((struct PlayerTile*)inventory->owner->data)->slots, ((struct PlayerTile*)inventory->owner->data)->used_slots, ((struct ItemTile*)current_tile->data)->required_slots);
|
||||
int type = slotsCanAdd(difference, ((struct PlayerTile*)inventory->owner->data)->slots, ((struct PlayerTile*)inventory->owner->data)->used_slots, ((struct EquipTile*)current_tile->data)->required_slots);
|
||||
if (type == 2) { //
|
||||
sprintf(string, MESSAGE_EQUIP_NEED_FREE, difference);
|
||||
messageTile(current_tile, inventory->owner, string);
|
||||
|
@ -40,7 +40,7 @@ int inventoryEquip(struct Inventory *inventory, int selected) {
|
|||
} else {
|
||||
sprintf(string, MESSAGE_EQUIP, ((struct BasicTile*)current_tile->data)->name);
|
||||
|
||||
slotsAddSlots(((struct PlayerTile*)inventory->owner->data)->used_slots, ((struct ItemTile*)current_tile->data)->required_slots);
|
||||
slotsAddSlots(((struct PlayerTile*)inventory->owner->data)->used_slots, ((struct EquipTile*)current_tile->data)->required_slots);
|
||||
|
||||
inventoryRemove(inventory, current_tile);
|
||||
addToInventory(&((struct PlayerTile*)inventory->owner->data)->equipment, current_tile);
|
||||
|
@ -60,7 +60,7 @@ int inventoryUnequip(struct Inventory *inventory, int selected) {
|
|||
if (i == selected) {
|
||||
char string[64];
|
||||
|
||||
slotsRemoveSlots(((struct PlayerTile*)inventory->owner->data)->used_slots, ((struct ItemTile*)current_tile->data)->required_slots);
|
||||
slotsRemoveSlots(((struct PlayerTile*)inventory->owner->data)->used_slots, ((struct EquipTile*)current_tile->data)->required_slots);
|
||||
inventoryRemove(inventory, current_tile);
|
||||
addToInventory(&((struct PlayerTile*)inventory->owner->data)->inventory, current_tile);
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ int main(int argc, char **argv) {
|
|||
convert("tiles/ui.png", "ui_images");
|
||||
convert("tiles/players.png", "player_images");
|
||||
convert("tiles/items.png", "item_images");
|
||||
convert("tiles/equips.png", "equip_images");
|
||||
convert("tiles/npcs.png", "npc_images");
|
||||
convert("tiles/walls.png", "wall_images");
|
||||
convert("tiles/floors.png", "floor_images");
|
||||
|
|
2
player.c
2
player.c
|
@ -119,7 +119,7 @@ Returns: void
|
|||
****/
|
||||
void playerPickup() {
|
||||
struct Tile* tile = player->prev;
|
||||
if (tile->tid == ITEM) {
|
||||
if (tile->tid == ITEM || tile->tid == EQUIP) {
|
||||
removeFromChain(tile);
|
||||
addToInventory(&((struct PlayerTile*)player->data)->inventory, tile);
|
||||
char string[64];
|
||||
|
|
20
tile.c
20
tile.c
|
@ -82,6 +82,11 @@ struct Tile *newTile(unsigned int type_id, short id, short x, short y) {
|
|||
new_tile->data = (struct ItemTile *) malloc(sizeof(struct ItemTile));
|
||||
memcpy(new_tile->data, &items[id], sizeof(struct ItemTile));
|
||||
break;
|
||||
case EQUIP:
|
||||
new_tile->data = (struct EquipTile *) malloc(sizeof(struct EquipTile));
|
||||
memcpy(new_tile->data, &equips[id], sizeof(struct EquipTile));
|
||||
break;
|
||||
|
||||
default:
|
||||
new_tile->data = (struct BasicTile *) malloc(sizeof(struct BasicTile));
|
||||
memcpy(new_tile->data, &walls[id], sizeof(struct BasicTile));
|
||||
|
@ -118,8 +123,6 @@ int activateTile(struct Tile *target_tile, struct Tile *activator_tile) {
|
|||
case NPC:
|
||||
sprintf(string, MESSAGE_ACTIVATE_NAUGHTY, ((struct BasicTile*)target_tile->data)->name);
|
||||
break;
|
||||
case ITEM:
|
||||
break;
|
||||
default:
|
||||
sprintf(string, MESSAGE_ACTIVATE_FAIL);
|
||||
break;
|
||||
|
@ -182,7 +185,7 @@ struct DoorTile doors[] = {
|
|||
};
|
||||
|
||||
struct PlayerTile players[] = {
|
||||
{ "selfie", 16, "S8D8C8I8W8C8", "H1F1N2S2A2a2h2D2T1W1L2l2f2" }
|
||||
{ "selfie", 16, "S8D8C8I8W8C8", "H1F1N2S2A2a2h2D8w2T1W1L2l2f2" }
|
||||
//{ 10, 10, 8, 6, 6, 6 }, { 1, 1, 1, 2, 2, 2, 2, 10, 1, 1, 2, 2, 2 } }
|
||||
};
|
||||
|
||||
|
@ -192,8 +195,11 @@ struct NpcTile npcs[] = {
|
|||
};
|
||||
|
||||
struct ItemTile items[] = {
|
||||
{ "small macana", 1, "P1d4", "h1", "", "" },
|
||||
//{ 0, "small macana", 1, "P1d4", { 6, 4 }, { 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 } },
|
||||
//{ 0, "large macana", 1, "P1d8", { 10, 6 } }
|
||||
{ "large macana", 1, "P1d8", "h2", "", "" }
|
||||
{ "small key" },
|
||||
};
|
||||
|
||||
struct EquipTile equips[] = {
|
||||
{ "small macana", 1, "w1", "P1d4", "P1", "", "" },
|
||||
{ "large macana", 1, "w2", "P1d8", "P2", "", "" }
|
||||
};
|
||||
|
||||
|
|
23
tile.h
23
tile.h
|
@ -12,7 +12,8 @@
|
|||
#define WALL 3
|
||||
#define DOOR 4
|
||||
#define ITEM 5
|
||||
#define NPC 6
|
||||
#define EQUIP 6
|
||||
#define NPC 7
|
||||
|
||||
#define STATE_CLOSED 0
|
||||
#define STATE_OPEN 1
|
||||
|
@ -83,19 +84,23 @@ struct NpcTile {
|
|||
};
|
||||
extern struct NpcTile npcs[];
|
||||
|
||||
// TODO: equippable items should probably be different from normal items.
|
||||
struct ItemTile {
|
||||
char name[16];
|
||||
int type; // 0 = generic item, 1 = weapons, 2 = armour
|
||||
//char stats[31]; // instead of having each stat a separate property, a string is used. e.g., "P1d8F1d2I1d4" = physical 1d8, fire 1d2, ice 1d4
|
||||
char roll[63];
|
||||
char required_slots[63];
|
||||
char given_slots[63]; // slots given by wearing item
|
||||
char given_stats[63];
|
||||
// struct Slots slots;
|
||||
int type; // 0 = generic item
|
||||
};
|
||||
extern struct ItemTile items[];
|
||||
|
||||
struct EquipTile {
|
||||
char name[16];
|
||||
int type; // TODO: remove?
|
||||
char required_slots[63]; // required slots to equip
|
||||
char damage_mod[63]; // damage given by wearing item
|
||||
char armour_mod[63]; // armour given by wearing item
|
||||
char stat_mod[63]; // stats given by wearing item
|
||||
char slot_mod[63]; // slots given by wearing item
|
||||
};
|
||||
extern struct EquipTile equips[];
|
||||
|
||||
/*
|
||||
interface used for creating new Tile
|
||||
*/
|
||||
|
|
|
@ -79,3 +79,8 @@ CursesTile curses_players[] = {
|
|||
CursesTile curses_npcs[] = {
|
||||
{'n', COLOR_RED, COLOR_BLACK, 0}
|
||||
};
|
||||
|
||||
CursesTile curses_items[] = {
|
||||
{'/', COLOR_RED, COLOR_BLACK, 0},
|
||||
{'/', COLOR_RED, COLOR_BLACK, A_BOLD},
|
||||
};
|
||||
|
|
|
@ -14,5 +14,6 @@ extern CursesTile curses_floors[];
|
|||
extern CursesTile curses_doors[];
|
||||
extern CursesTile curses_players[];
|
||||
extern CursesTile curses_npcs[];
|
||||
extern CursesTile curses_items[];
|
||||
|
||||
#endif
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 466 B |
BIN
tiles/items.png
BIN
tiles/items.png
Binary file not shown.
Before Width: | Height: | Size: 466 B After Width: | Height: | Size: 375 B |
|
@ -20,9 +20,14 @@ unsigned char player_images[] = {
|
|||
unsigned int player_images_length = 2099;
|
||||
|
||||
unsigned char item_images[] = {
|
||||
0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x08,0x06,0x00,0x00,0x00,0x5c,0x72,0xa8,0x66,0x00,0x00,0x01,0x3e,0x49,0x44,0x41,0x54,0x78,0x9c,0xed,0xd4,0x31,0x11,0xc0,0x20,0x10,0x44,0x51,0x34,0x64,0xa2,0x21,0x25,0x18,0x88,0x10,0x6c,0xc4,0x7f,0x71,0x54,0x67,0x21,0xcc,0x70,0xef,0x29,0xd8,0xe6,0x6f,0x6b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xcf,0xde,0xd1,0x63,0xf7,0x06,0x60,0x83,0x8c,0xff,0xb9,0x2f,0x27,0x00,0x55,0x7c,0x73,0x86,0xf8,0xa1,0xa0,0x8c,0x5f,0xf8,0x50,0x94,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0xb1,0x00,0x11,0x0c,0x0f,0xcd,0x0b,0x5e,0xf1,0x6a,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
|
||||
};
|
||||
unsigned int item_images_length = 375;
|
||||
|
||||
unsigned char equip_images[] = {
|
||||
0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x08,0x06,0x00,0x00,0x00,0x5c,0x72,0xa8,0x66,0x00,0x00,0x01,0x99,0x49,0x44,0x41,0x54,0x78,0x9c,0xed,0xd7,0xb1,0x0d,0x02,0x31,0x10,0x04,0xc0,0x13,0x75,0x10,0xb8,0x80,0x0b,0x68,0x81,0x80,0x82,0xe8,0x95,0x42,0xe8,0xc0,0x64,0x16,0x7a,0x7d,0xf2,0xf8,0x25,0x63,0x79,0x26,0xb7,0xec,0x64,0xd7,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x35,0x22,0x6a,0x66,0xd6,0xd1,0x0f,0x81,0xd5,0x5d,0x46,0x5c,0x9a,0x99,0xf1,0x78,0xbf,0x42,0x09,0xc0,0x62,0x32,0xb3,0x3e,0xaf,0x6d,0x02,0x50,0x00,0x30,0x89,0x5a,0x4a,0xa9,0xb7,0xfb,0xef,0xa1,0xdd,0x09,0xbf,0x02,0x80,0x09,0xb4,0xf0,0x97,0x52,0x8e,0x86,0xb6,0x7e,0x9f,0x37,0xf6,0xc3,0x64,0x36,0xe1,0x3f,0x5c,0x00,0x1d,0xe5,0x01,0x8c,0xd4,0x19,0xfe,0xee,0xf3,0xc0,0x18,0xdd,0x3f,0xf7,0x4e,0xf8,0x15,0x00,0x4c,0xe0,0xb4,0x9d,0xdf,0xd8,0x0f,0x93,0xb1,0xf3,0xc3,0xba,0xda,0x0f,0x1e,0x76,0x7e,0x58,0x4e,0x4f,0x70,0xb7,0xe5,0xa1,0x00,0x60,0x22,0xbd,0x81,0x15,0x7a,0x98,0xd4,0x19,0xe1,0x07,0x16,0x24,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xea,0x03,0xd8,0x20,0x6f,0x9c,0x42,0xdb,0x1e,0xc4,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
|
||||
};
|
||||
unsigned int item_images_length = 466;
|
||||
unsigned int equip_images_length = 466;
|
||||
|
||||
unsigned char npc_images[] = {
|
||||
0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x08,0x06,0x00,0x00,0x00,0x5c,0x72,0xa8,0x66,0x00,0x00,0x01,0xc1,0x49,0x44,0x41,0x54,0x78,0x9c,0xed,0xd9,0xb1,0x11,0x82,0x30,0x14,0x06,0x60,0x74,0x02,0x5b,0x3a,0x06,0x60,0x09,0x46,0xa0,0x70,0x5e,0x07,0xa1,0x61,0x08,0xfa,0x67,0x81,0x7a,0x18,0x89,0x56,0x82,0xe6,0xbe,0xaf,0xc9,0x91,0x0b,0x77,0xaf,0xf9,0x5f,0x12,0xa8,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xb7,0xf5,0x7d,0x1f,0x4d,0xd3,0xc4,0xde,0x75,0x00,0xdf,0x75,0x4c,0x27,0xda,0xb6,0x8d,0x69,0x9a,0xf6,0xa8,0x05,0xd8,0xd8,0x4b,0x03,0xa8,0xeb,0xba,0x1a,0x86,0xa1,0x1a,0xc7,0xf1,0xb0,0x47,0x41,0xc0,0x8e,0x92,0xa3,0x7f,0x24,0x23,0x50,0x90,0xa7,0x13,0xc0,0x4a,0xf8,0x0f,0x8b,0x11,0x28,0x4c,0x1a,0xec,0x58,0xcc,0xc7,0x9b,0x75,0x40,0x01,0x5e,0xbe,0x01,0xdc,0x44,0xc4,0x9c,0xff,0x73,0x9c,0xb7,0xab,0x06,0xd8,0xd4,0xea,0xce,0xde,0xdd,0x76,0xff,0x4b,0x7e,0x9d,0x6b,0x01,0x14,0x20,0x1b,0xe2,0x6e,0x71,0x05,0x48,0x1a,0x81,0xf0,0x43,0x21,0xde,0x06,0x39,0xd3,0x04,0x3e,0xbe,0x07,0xfc,0x87,0xdc,0x37,0x80,0x27,0x97,0x39,0xf0,0xf7,0xd0,0x0b,0x3f,0x14,0x22,0xdb,0x00,0xba,0xf5,0x7f,0xff,0xc2,0x0f,0x05,0xc9,0xfe,0x05,0x98,0x8f,0xfc,0xa7,0xc7,0xf3,0x16,0xc5,0x00,0xbf,0x21,0x0d,0xbc,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xaf,0xae,0x60,0xa0,0x2a,0x6f,0x17,0x2b,0x1d,0xf4,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
|
||||
|
|
|
@ -18,6 +18,9 @@ extern unsigned int player_images_length;
|
|||
extern unsigned char item_images[];
|
||||
extern unsigned int item_images_length;
|
||||
|
||||
extern unsigned char equip_images[];
|
||||
extern unsigned int equip_images_length;
|
||||
|
||||
extern unsigned char npc_images[];
|
||||
extern unsigned int npc_images_length;
|
||||
|
||||
|
|
Loading…
Reference in New Issue