diff options
| -rw-r--r-- | Creatures.cpp | 9 | ||||
| -rw-r--r-- | GUI.cpp | 7 | ||||
| -rw-r--r-- | GUI.h | 1 | ||||
| -rw-r--r-- | UserInput.cpp | 4 | ||||
| -rw-r--r-- | commonTypes.h | 1 | ||||
| -rw-r--r-- | resources/SSJobIcons.png | bin | 0 -> 7355 bytes |
6 files changed, 22 insertions, 0 deletions
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 ){
@@ -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);
@@ -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 Binary files differnew file mode 100644 index 0000000..0bd2914 --- /dev/null +++ b/resources/SSJobIcons.png |
