From 2fda3e5e828f085de1e533ae437cf7e649752da7 Mon Sep 17 00:00:00 2001 From: Caldfir Date: Sun, 22 Apr 2012 18:54:42 -0700 Subject: Added basic job icon support (very placeholderish icons). --- Creatures.cpp | 9 +++++++++ GUI.cpp | 7 +++++++ GUI.h | 1 + UserInput.cpp | 4 ++++ commonTypes.h | 1 + resources/SSJobIcons.png | Bin 0 -> 7355 bytes 6 files changed, 22 insertions(+) create mode 100644 resources/SSJobIcons.png diff --git a/Creatures.cpp b/Creatures.cpp index a14f148..38cef17 100644 --- a/Creatures.cpp +++ b/Creatures.cpp @@ -300,6 +300,15 @@ void DrawCreature(int drawx, int drawy, t_unit* creature, Block * b){ unsigned int sheety = 16 * (creature->profession / 7); al_draw_bitmap_region(IMGProfSheet, sheetx, sheety, 16, 16, drawx -8 + (SPRITEWIDTH*config.scale/2), drawy - (16 + WALLHEIGHT*config.scale + offsety), 0); } + + offsety += config.show_creature_professions ? 16 : 0; + + if(config.show_creature_jobs && creature->current_job.active) + { + unsigned int sheetx = 16 * (creature->current_job.jobType % 7); + unsigned int sheety = 16 * (creature->current_job.jobType / 7); + al_draw_bitmap_region(IMGJobSheet, sheetx, sheety, 16, 16, drawx -8 + (SPRITEWIDTH*config.scale/2), drawy - (16 + WALLHEIGHT*config.scale + offsety), 0); + } } void DrawCreatureText(int drawx, int drawy, t_unit* creature ){ diff --git a/GUI.cpp b/GUI.cpp index 39da953..3ddd855 100644 --- a/GUI.cpp +++ b/GUI.cpp @@ -57,6 +57,7 @@ ALLEGRO_BITMAP* IMGCreatureSheet; ALLEGRO_BITMAP* IMGRampSheet; ALLEGRO_BITMAP* IMGStatusSheet; ALLEGRO_BITMAP* IMGProfSheet; +ALLEGRO_BITMAP* IMGJobSheet; ALLEGRO_BITMAP* IMGBloodSheet; ALLEGRO_BITMAP* IMGEngFloorSheet; ALLEGRO_BITMAP* IMGEngLeftSheet; @@ -1048,6 +1049,7 @@ void loadGraphicsFromDisk() if(!load_from_path(p, "ramps.png", IMGRampSheet)) return; if(!load_from_path(p, "SSStatusIcons.png", IMGStatusSheet)) return; if(!load_from_path(p, "SSProfIcons.png", IMGProfSheet)) return; + if(!load_from_path(p, "SSJobIcons.png", IMGJobSheet)) return; if(!load_from_path(p, "gibs.png", IMGBloodSheet)) return; if(!load_from_path(p, "engravings_floor.png", IMGEngFloorSheet)) return; if(!load_from_path(p, "engravings_left.png", IMGEngLeftSheet)) return; @@ -1087,6 +1089,11 @@ void flushImgFiles() al_destroy_bitmap(IMGProfSheet); IMGProfSheet = 0; } + if(IMGJobSheet) + { + al_destroy_bitmap(IMGJobSheet); + IMGJobSheet = 0; + } if(IMGEngFloorSheet) { al_destroy_bitmap(IMGEngFloorSheet); diff --git a/GUI.h b/GUI.h index 0769dd7..2706b85 100644 --- a/GUI.h +++ b/GUI.h @@ -50,6 +50,7 @@ extern ALLEGRO_BITMAP* IMGCreatureSheet; extern ALLEGRO_BITMAP* IMGRampSheet; extern ALLEGRO_BITMAP* IMGStatusSheet; extern ALLEGRO_BITMAP* IMGProfSheet; +extern ALLEGRO_BITMAP* IMGJobSheet; extern ALLEGRO_BITMAP* IMGBloodSheet; extern ALLEGRO_BITMAP* IMGEngFloorSheet; extern ALLEGRO_BITMAP* IMGEngLeftSheet; diff --git a/UserInput.cpp b/UserInput.cpp index 96c31fb..90e9a24 100644 --- a/UserInput.cpp +++ b/UserInput.cpp @@ -236,6 +236,10 @@ void doKeys(int Key) config.show_creature_professions = !config.show_creature_professions; timeToReloadSegment = true; } + if(Key == ALLEGRO_KEY_J){ + config.show_creature_jobs = !config.show_creature_jobs; + timeToReloadSegment = true; + } if(Key == ALLEGRO_KEY_C){ config.truncate_walls++; if (config.truncate_walls > 4) config.truncate_walls = 0; diff --git a/commonTypes.h b/commonTypes.h index 40c7c7f..3a13e74 100644 --- a/commonTypes.h +++ b/commonTypes.h @@ -191,6 +191,7 @@ typedef struct bool show_creature_moods; bool show_creature_professions; + bool show_creature_jobs; bool transparentScreenshots; diff --git a/resources/SSJobIcons.png b/resources/SSJobIcons.png new file mode 100644 index 0000000..0bd2914 Binary files /dev/null and b/resources/SSJobIcons.png differ -- cgit v1.2.1