|  |  | @ -21,6 +21,7 @@ using namespace std; | 
			
		
	
		
		
			
				
					
					|  |  |  | #include <DFMemInfo.h> |  |  |  | #include <DFMemInfo.h> | 
			
		
	
		
		
			
				
					
					|  |  |  | #include <modules/Maps.h> |  |  |  | #include <modules/Maps.h> | 
			
		
	
		
		
			
				
					
					|  |  |  | #include <modules/Materials.h> |  |  |  | #include <modules/Materials.h> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | #include "miscutils.h" | 
			
		
	
		
		
			
				
					
					|  |  |  | using namespace DFHack; |  |  |  | using namespace DFHack; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -307,6 +308,7 @@ main(int argc, char *argv[]) | 
			
		
	
		
		
			
				
					
					|  |  |  |     materials.clear(); |  |  |  |     materials.clear(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     mapblock40d blocks[3][3]; |  |  |  |     mapblock40d blocks[3][3]; | 
			
		
	
		
		
			
				
					
					|  |  |  |     vector<DFHack::t_matgloss> stonetypes; |  |  |  |     vector<DFHack::t_matgloss> stonetypes; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     vector<DFHack::t_matgloss> creature_types; | 
			
		
	
		
		
			
				
					
					|  |  |  |     vector<DFHack::t_effect_df40d> effects; |  |  |  |     vector<DFHack::t_effect_df40d> effects; | 
			
		
	
		
		
			
				
					
					|  |  |  |     vector< vector <uint16_t> > layerassign; |  |  |  |     vector< vector <uint16_t> > layerassign; | 
			
		
	
		
		
			
				
					
					|  |  |  |     vector<t_vein> veinVector; |  |  |  |     vector<t_vein> veinVector; | 
			
		
	
	
		
		
			
				
					|  |  | @ -355,6 +357,13 @@ main(int argc, char *argv[]) | 
			
		
	
		
		
			
				
					
					|  |  |  |         pDF = 0; |  |  |  |         pDF = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |         finish(0); |  |  |  |         finish(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     if(!Mats->ReadCreatureTypes(creature_types)) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         error = "Can't read stone types."; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         pDF = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         finish(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | /*
 |  |  |  | /*
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // get region geology
 |  |  |  |     // get region geology
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     if(!DF.ReadGeology( layerassign )) |  |  |  |     if(!DF.ReadGeology( layerassign )) | 
			
		
	
	
		
		
			
				
					|  |  | @ -558,11 +567,12 @@ main(int argc, char *argv[]) | 
			
		
	
		
		
			
				
					
					|  |  |  |         gotoxy(0,50); |  |  |  |         gotoxy(0,50); | 
			
		
	
		
		
			
				
					
					|  |  |  |         uint32_t mineralsize = veinVector.size(); |  |  |  |         uint32_t mineralsize = veinVector.size(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         uint32_t icesize = IceVeinVector.size(); |  |  |  |         uint32_t icesize = IceVeinVector.size(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         uint32_t totalVeinSize =  mineralsize+ icesize; |  |  |  |         uint32_t splattersize = splatter.size(); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         uint32_t totalVeinSize =  mineralsize+ icesize + splattersize; | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(vein == totalVeinSize) vein = totalVeinSize - 1; |  |  |  |         if(vein == totalVeinSize) vein = totalVeinSize - 1; | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(vein < -1) vein = -1; |  |  |  |         if(vein < -1) vein = -1; | 
			
		
	
		
		
			
				
					
					|  |  |  |         cprintf("X %d/%d, Y %d/%d, Z %d/%d. Vein %d of %d",cursorX+1,x_max,cursorY+1,y_max,cursorZ,z_max,vein+1,totalVeinSize); |  |  |  |         cprintf("X %d/%d, Y %d/%d, Z %d/%d. Vein %d of %d",cursorX+1,x_max,cursorY+1,y_max,cursorZ,z_max,vein+1,totalVeinSize); | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(!veinVector.empty() || !IceVeinVector.empty()) |  |  |  |         if(!veinVector.empty() || !IceVeinVector.empty() || !splatter.empty()) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |             if(vein != -1 && vein < totalVeinSize) |  |  |  |             if(vein != -1 && vein < totalVeinSize) | 
			
		
	
		
		
			
				
					
					|  |  |  |             { |  |  |  |             { | 
			
		
	
	
		
		
			
				
					|  |  | @ -595,7 +605,7 @@ main(int argc, char *argv[]) | 
			
		
	
		
		
			
				
					
					|  |  |  |                     gotoxy(0,51); |  |  |  |                     gotoxy(0,51); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     cprintf("Mineral: %s",stonetypes[veinVector[vein].type].id); |  |  |  |                     cprintf("Mineral: %s",stonetypes[veinVector[vein].type].id); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |                 else |  |  |  |                 else if (vein < mineralsize + icesize) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 { |  |  |  |                 { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     realvein = vein - mineralsize; |  |  |  |                     realvein = vein - mineralsize; | 
			
		
	
		
		
			
				
					
					|  |  |  |                     t_frozenliquidvein &frozen = IceVeinVector[realvein]; |  |  |  |                     t_frozenliquidvein &frozen = IceVeinVector[realvein]; | 
			
		
	
	
		
		
			
				
					|  |  | @ -615,6 +625,26 @@ main(int argc, char *argv[]) | 
			
		
	
		
		
			
				
					
					|  |  |  |                     gotoxy(0,51); |  |  |  |                     gotoxy(0,51); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     cprintf("ICE"); |  |  |  |                     cprintf("ICE"); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 else | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     realvein = vein - mineralsize - icesize; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     t_spattervein &bloodmud = splatter[realvein]; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     for(uint32_t yyy = 0; yyy < 16; yyy++) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         for(uint32_t xxx = 0; xxx < 16; xxx++)  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                             uint8_t intensity = splatter[realvein].intensity[xxx][yyy]; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                             if(intensity) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                             { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                 attron(A_STANDOUT); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                 putch(xxx+16,yyy+16,'*', COLOR_RED); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                 attroff(A_STANDOUT); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     gotoxy(0,51); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     cprintf("Spatter: %s",PrintSplatterType(splatter[realvein].mat1,splatter[realvein].mat2,creature_types).c_str()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         gotoxy (0,52); |  |  |  |         gotoxy (0,52); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |