And another huge code cleanup.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3838 c06c8d41-db1a-0410-9941-cceddc491573
LP5EK64IEM7AHNYQID4GGKOQJQNZLKY4DCCZN47SIUZ6IXAXH5UAC ZWVXM43CBKDWRFNZ432Z6G6J7DBA2GKRRGCSZQCRQS2M4YX53ETQC HRAL36C7UUL7V6TFXQ76FZ3VVVFEJYF7YWOP2EXYXP6C27XME2PAC C4WXQRJTDW53PYFWQ4LOINSCI2IWMIQTH5WDSI7QUP72PKDBYHZAC DGHHGJ6RCXFF3I53K2DI2FDB3UW2SUZAWWAQ7T6YW6374WOQASUQC JXAB5WYRDGBLKOBEQJLZKIE7YHQ2ZI6LKWEFSNF2TGAHPNUI3SBQC HODV46TCH5AGI42Z5JKVDX4VCRVQCNREJUL6W3TUJK6S77SXQNLQC 3SK2OEKJBQUGGYU2PJ7BWBGMKS53K2JH6HKL65AWTFN6JVZRG2PAC QRPQJ6B37PFCUHKSO2BQ374YUVL2B7ELIL5SNENEG2WWFIYZQTHQC HBHQQDULNVWISJ75XIL6R6BFEDYRNY22NX3ZTFVNP5ZWJGJSKOEQC 25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC D5EMJEEIJSSULF236DUM26QHHNDLH7FXAOBHFDAYI65KCKTDTDYQC 5FA5IEAXTMXYS2VUBVDKBKHPKAIOY4GN5SXYJORBYWQIGHVW3FFQC QON6K747RDVN55UTIJWNGIIGSDS7IHKB24JMHWSIMAQ572D7C3NAC 3GRGONHWIZ7PTTNMJ6CIZEMIKC7N2DTU62BLJ5QG4E7RGA5O2XMAC ND3T5LCZATC63EVQ6SLI7XXMSUL7XICJDNLH3UCYUDEFWTA3N5MQC 7G4KWTOOBRLHOZZGFGAXGTUCDF3FGSZOXVHUZZ3V2KVWYSFE7EKAC 4SUUJM2DQUEWHDG3UKJUDZABLHFVF2CFUX5GVAWKT7BBBGR2ISTQC J3M6J3UPL4AUJDXINY7UKH2JZQVQLKGH7AMOKI6L3QI7Y2F33O5QC DGB7DKTR6OEQEMOOF3MAHDT4PAPKZ54Y33MWYVD7XIOESPFAXHQQC PBRFKFYILME3A2YLLVGRWJ2C7PCE2GONSINX65P4EG22ZGCW6JWAC MZLB3Q7G4EC2BR3OFMG55WPHXPFJGQSLWAIHHFJEAEATPUTYR7EAC IHOKNI4O7EEW4UBMKHP6XOZNEIQSW4AYOT4O3JXUIXNNR553IQAQC YMC3RKF4Z7DOHZNGG7INC343SXCTWOPK7ISD42I3WA3AZZNVBGIAC static void tile_draw_grid(int kind, int xx, int yy);static void clear_tcache();static void init_tcache();static void register_tile_mask(int tile, int region, int *cp,char *ms, bool smalltile = false);static void tcache_compose_normal(int ix, int *fg, int *bg);
static void _tile_draw_grid(int kind, int xx, int yy);static void _clear_tcache();static void _init_tcache();static void _register_tile_mask(int tile, int region, int *cp,char *ms, bool smalltile = false);static void _tcache_compose_normal(int ix, int *fg, int *bg);
if (ImgWidth(TileImg)!= TILE_X * TILE_PER_ROW ||ImgHeight(TileImg) < TILE_Y*( (TILE_TOTAL + TILE_PER_ROW -1)/TILE_PER_ROW))
if (ImgWidth(TileImg)!= TILE_X * TILE_PER_ROW|| ImgHeight(TileImg) <TILE_Y * ((TILE_TOTAL + TILE_PER_ROW -1)/TILE_PER_ROW) )
for(x=0;x<TILE_DAT_XMAX+2;x++){for(y=0;y<TILE_DAT_YMAX+2;y++){t1buf[x][y]=0;t2buf[x][y]=TILE_DNGN_UNSEEN|TILE_FLAG_UNSEEN;}}
for (x = 0; x < TILE_DAT_XMAX + 2; x++){for (y = 0; y < TILE_DAT_YMAX + 2; y++){t1buf[x][y] = 0;t2buf[x][y] = TILE_DNGN_UNSEEN|TILE_FLAG_UNSEEN;}}
/** overlay a tile onto an exsisting image with transpalency operation */void register_tile_mask(int tile, int region, int *copy,char *mask, bool smalltile)
/* overlay a tile onto an exsisting image with transpalency operation */void _register_tile_mask(int tile, int region, int *copy,char *mask, bool smalltile)
int sx= region_sx_normal[region];int sy= region_sy_normal[region];int wx= region_wx_normal[region];int wy= region_wy_normal[region];int ox=0;int oy=0;
int sx = region_sx_normal[region];int sy = region_sy_normal[region];int wx = region_wx_normal[region];int wy = region_wy_normal[region];int ox = 0;int oy = 0;int ux = wx;int uy = wy;
for(x=0;x<wx;x+=2){for(y=0;y<wy;y+=2){if(! ImgIsTransparentAt(src, x0+sx+x, y0+sy+y))mask[(y+oy)*ux+(x+ox)]=1;}}
for (x = 0; x < wx; x += 2){for (y = 0; y < wy; y += 2){if (!ImgIsTransparentAt(src, x0+sx+x, y0+sy+y))mask[(y+oy) * ux + (x+ox)] = 1;}}
for(y=0;y<tile_dngn_y;y++){for(x=0;x<tile_dngn_x;x++){tileb[count] = t1buf[x+1][y+1];count ++;tileb[count] = t2buf[x+1][y+1];count ++;}}
for (y = 0; y < tile_dngn_y; y++){for (x = 0; x < tile_dngn_x; x++){tileb[count++] = t1buf[x+1][y+1];tileb[count++] = t2buf[x+1][y+1];}}
if(tileb[count]==tileb[count+1])tileb[count]=0;t1buf[x+1][y+1] = tileb[count];count ++;t2buf[x+1][y+1] = tileb[count];count ++;
if (tileb[count] == tileb[count+1])tileb[count] = 0;t1buf[x+1][y+1] = tileb[count++];t2buf[x+1][y+1] = tileb[count++];
if (parts2[p] && p == TILEP_PART_BOOTS &&(parts2[p] == TILEP_BOOTS_NAGA_BARDING ||parts2[p] == TILEP_BOOTS_CENTAUR_BARDING))
if (parts2[p] && p == TILEP_PART_BOOTS&& (parts2[p] == TILEP_BOOTS_NAGA_BARDING|| parts2[p] == TILEP_BOOTS_CENTAUR_BARDING))
char tile = parts2[p] == TILEP_BOOTS_NAGA_BARDING ?TILEP_SHADOW_NAGA_BARDING : TILEP_SHADOW_CENTAUR_BARDING;tcache_overlay_player(img, 0, 0, TILEP_PART_SHADOW, tile,TILE_Y, &c);
char tile = (parts2[p] == TILEP_BOOTS_NAGA_BARDING) ?TILEP_SHADOW_NAGA_BARDING :TILEP_SHADOW_CENTAUR_BARDING;tcache_overlay_player(img, 0, 0, TILEP_PART_SHADOW,tile, TILE_Y, &c);
dolls[i].parts[TILEP_PART_CLOAK] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_BOOTS] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_LEG] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_BODY] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_ARM] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_HAND1] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_HAND2] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_HAIR] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_BEARD] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_HELM] = TILEP_SHOW_EQUIP;
dolls[i].parts[TILEP_PART_CLOAK] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_BOOTS] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_LEG] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_BODY] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_ARM] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_HAND1] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_HAND2] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_HAIR] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_BEARD] = TILEP_SHOW_EQUIP;dolls[i].parts[TILEP_PART_HELM] = TILEP_SHOW_EQUIP;
undo_dolls[cur_doll].parts[ p_lines[i] ] = dolls[cur_doll].parts[ p_lines[i] ];dolls[cur_doll].parts[ p_lines[i] ] = copy_doll[ p_lines[i] ];
undo_dolls[cur_doll].parts[ p_lines[i] ]= dolls[cur_doll].parts[ p_lines[i] ];dolls[cur_doll].parts[ p_lines[i] ]= copy_doll[ p_lines[i] ];
dolls[cur_doll].parts[TILEP_PART_CLOAK] =one_chance_in(2) * ( random2(tilep_parts_total[ TILEP_PART_CLOAK ]) + 1);dolls[cur_doll].parts[TILEP_PART_BOOTS] =( random2(tilep_parts_total[ TILEP_PART_BOOTS ] + 1) );dolls[cur_doll].parts[TILEP_PART_LEG] =( random2(tilep_parts_total[ TILEP_PART_LEG ] + 1) );dolls[cur_doll].parts[TILEP_PART_BODY] =( random2(tilep_parts_total[ TILEP_PART_BODY ] + 1) );dolls[cur_doll].parts[TILEP_PART_ARM] =one_chance_in(2) * ( random2(tilep_parts_total[ TILEP_PART_ARM ]) + 1);dolls[cur_doll].parts[TILEP_PART_HAND1] =( random2(tilep_parts_total[ TILEP_PART_HAND1 ] + 1) );dolls[cur_doll].parts[TILEP_PART_HAND2] =one_chance_in(2) * ( random2(tilep_parts_total[ TILEP_PART_HAND2 ]) + 1);dolls[cur_doll].parts[TILEP_PART_HAIR] =( random2(tilep_parts_total[ TILEP_PART_HAIR ] + 1) );dolls[cur_doll].parts[TILEP_PART_BEARD] =( (dolls[cur_doll].parts[TILEP_PART_BASE] + 1) % 2) *one_chance_in(4) * ( random2(tilep_parts_total[ TILEP_PART_BEARD ]) + 1 );dolls[cur_doll].parts[TILEP_PART_HELM] =one_chance_in(2) * ( random2(tilep_parts_total[ TILEP_PART_HELM ]) + 1 );for(i = 2; i < PARTS_ITEMS; i++){
dolls[cur_doll].parts[TILEP_PART_CLOAK]= coinflip() * (random2(tilep_parts_total[ TILEP_PART_CLOAK ]) + 1);dolls[cur_doll].parts[TILEP_PART_BOOTS]= random2(tilep_parts_total[ TILEP_PART_BOOTS ] + 1);dolls[cur_doll].parts[TILEP_PART_LEG]= random2(tilep_parts_total[ TILEP_PART_LEG ] + 1);dolls[cur_doll].parts[TILEP_PART_BODY]= random2(tilep_parts_total[ TILEP_PART_BODY ] + 1);dolls[cur_doll].parts[TILEP_PART_ARM]= coinflip() * ( random2(tilep_parts_total[ TILEP_PART_ARM ]) + 1);dolls[cur_doll].parts[TILEP_PART_HAND1]= random2(tilep_parts_total[ TILEP_PART_HAND1 ] + 1);dolls[cur_doll].parts[TILEP_PART_HAND2]= coinflip() * ( random2(tilep_parts_total[ TILEP_PART_HAND2 ]) + 1);dolls[cur_doll].parts[TILEP_PART_HAIR]= random2(tilep_parts_total[ TILEP_PART_HAIR ] + 1);dolls[cur_doll].parts[TILEP_PART_BEARD]= ((dolls[cur_doll].parts[TILEP_PART_BASE] + 1) % 2)* one_chance_in(4)* ( random2(tilep_parts_total[ TILEP_PART_BEARD ]) + 1 );dolls[cur_doll].parts[TILEP_PART_HELM]= coinflip() * ( random2(tilep_parts_total[ TILEP_PART_HELM ]) + 1 );for (i = 2; i < PARTS_ITEMS; i++)
if (x == TILEP_PART_BODY){int p = 0;int ac = ghost.ac;ac *= (5 + (pseudo_rand/11) % 11);ac /= 10;
if (x == TILEP_PART_BODY){int p = 0;int ac = ghost.ac;ac *= (5 + (pseudo_rand/11) % 11);ac /= 10;
if (ac > 25) p= TILEP_BODY_PLATE_BLACK;elseif (ac > 20) p= TILEP_BODY_BANDED;elseif (ac > 15) p= TILEP_BODY_SCALEMAIL;elseif (ac > 10) p= TILEP_BODY_CHAINMAIL;elseif (ac > 5 ) p= TILEP_BODY_LEATHER_HEAVY;elsep= TILEP_BODY_ROBE_BLUE;
if (ac > 25)p = TILEP_BODY_PLATE_BLACK;else if (ac > 20)p = TILEP_BODY_BANDED;else if (ac > 15)p = TILEP_BODY_SCALEMAIL;else if (ac > 10)p = TILEP_BODY_CHAINMAIL;else if (ac > 5 )p = TILEP_BODY_LEATHER_HEAVY;elsep = TILEP_BODY_ROBE_BLUE;
if (dam>30) p = TILEP_HAND1_GREAT_FRAIL;elseif (dam>25) p = TILEP_HAND1_GREAT_MACE;elseif (dam>20) p = TILEP_HAND1_SPIKED_FRAIL;elseif (dam>15) p = TILEP_HAND1_MORNINGSTAR;elseif (dam>10) p = TILEP_HAND1_FRAIL;
case SK_MACES_FLAILS:if (dam > 30)p = TILEP_HAND1_GREAT_FRAIL;else if (dam > 25)p = TILEP_HAND1_GREAT_MACE;else if (dam > 20)p = TILEP_HAND1_SPIKED_FRAIL;else if (dam > 15)p = TILEP_HAND1_MORNINGSTAR;else if (dam > 10)p = TILEP_HAND1_FRAIL;else if (dam > 5)p = TILEP_HAND1_MACE;
}elseif (sk == SK_LONG_BLADES){if (dam>25) p = TILEP_HAND1_GREAT_SWORD_SLANT;
break;case SK_LONG_BLADES:if (dam > 25)p = TILEP_HAND1_GREAT_SWORD_SLANT;else if (dam > 20)p = TILEP_HAND1_KATANA_SLANT;else if (dam > 15)p = TILEP_HAND1_SCIMITAR;else if (dam > 10)p = TILEP_HAND1_LONG_SWORD_SLANT;
}elseif (sk == SK_AXES){if (dam>30) p = TILEP_HAND1_EXECUTIONERS_AXE;elseif (dam>20) p = TILEP_HAND1_BATTLEAXE;elseif (dam>15) p = TILEP_HAND1_BROAD_AXE;elseif (dam>10) p = TILEP_HAND1_WAR_AXE;
break;case SK_AXES:if (dam > 30)p = TILEP_HAND1_EXECUTIONERS_AXE;else if (dam > 20)p = TILEP_HAND1_BATTLEAXE;else if (dam > 15)p = TILEP_HAND1_BROAD_AXE;else if (dam > 10)p = TILEP_HAND1_WAR_AXE;
}elseif (sk == SK_POLEARMS){if (dam>30) p = TILEP_HAND1_GLAIVE;elseif (dam>20) p = TILEP_HAND1_SCYTHE;elseif (dam>15) p = TILEP_HAND1_HALBERD;elseif (dam>10) p = TILEP_HAND1_TRIDENT2;elseif (dam>10) p = TILEP_HAND1_HAMMER;
break;case SK_POLEARMS:if (dam > 30)p = TILEP_HAND1_GLAIVE;else if (dam > 20)p = TILEP_HAND1_SCYTHE;else if (dam > 15)p = TILEP_HAND1_HALBERD;else if (dam > 10)p = TILEP_HAND1_TRIDENT2;else if (dam > 10)p = TILEP_HAND1_HAMMER;
int xs = (tidx % TILEP_PER_ROW)*TILE_X +(idx % nx)*(TILE_X/nx) - ofs_x;int ys = (tidx / TILEP_PER_ROW)*TILE_Y +((idx/nx) % ny)*(TILE_Y/ny) - ofs_y;
int xs = (tidx % TILEP_PER_ROW)*TILE_X + (idx % nx) * (TILE_X/nx) - ofs_x;int ys = (tidx / TILEP_PER_ROW)*TILE_Y+ ((idx/nx) % ny) * (TILE_Y/ny) - ofs_y;
((iflags[i]&TILEI_FLAG_FLOOR) != 0),((iflags[i]&TILEI_FLAG_SELECT) != 0),((iflags[i]&TILEI_FLAG_EQUIP) != 0),((iflags[i]&TILEI_FLAG_TRIED) != 0),((iflags[i]&TILEI_FLAG_CURSE) != 0));
((iflags[i]&TILEI_FLAG_FLOOR) != 0),((iflags[i]&TILEI_FLAG_SELECT) != 0),((iflags[i]&TILEI_FLAG_EQUIP) != 0),((iflags[i]&TILEI_FLAG_TRIED) != 0),((iflags[i]&TILEI_FLAG_CURSE) != 0));
((itemlist_iflag[ix]&TILEI_FLAG_FLOOR) != 0),((itemlist_iflag[ix]&TILEI_FLAG_SELECT) != 0),((itemlist_iflag[ix]&TILEI_FLAG_EQUIP) != 0),((itemlist_iflag[ix]&TILEI_FLAG_TRIED) != 0),((itemlist_iflag[ix]&TILEI_FLAG_CURSE) != 0));
((itemlist_iflag[ix]&TILEI_FLAG_FLOOR) != 0),((itemlist_iflag[ix]&TILEI_FLAG_SELECT) != 0),((itemlist_iflag[ix]&TILEI_FLAG_EQUIP) != 0),((itemlist_iflag[ix]&TILEI_FLAG_TRIED) != 0),((itemlist_iflag[ix]&TILEI_FLAG_CURSE) != 0));
while ( (fbuf[gcount] != ':') && (fbuf[gcount] != '\n')&& (ccount<4) && (gcount<48) ){ibuf[ccount] = fbuf[gcount];ccount ++;gcount ++;}
while (fbuf[gcount] != ':' && fbuf[gcount] != '\n'&& ccount < 4 && gcount < 48){ibuf[ccount++] = fbuf[gcount++];}
idx = tilep_str_to_part(ibuf);if (p == TILEP_PART_BASE){int p0 = (parts[p]-1) & (0xfe);if (((1-idx) & 1) == 1) p0++;parts[p] = p0 + 1;}else if (idx == TILEP_SHOW_EQUIP)parts[p] = TILEP_SHOW_EQUIP;else if (idx < 0) // no negative valueparts[p] = 0;else if (idx > tilep_parts_total[p]) // bound itparts[p] = tilep_parts_total[p];elseparts[p] = idx;
idx = tilep_str_to_part(ibuf);if (p == TILEP_PART_BASE){int p0 = (parts[p]-1) & (0xfe);if (((1-idx) & 1) == 1)p0++;parts[p] = p0 + 1;}else if (idx == TILEP_SHOW_EQUIP)parts[p] = TILEP_SHOW_EQUIP;else if (idx < 0) // no negative valueparts[p] = 0;else if (idx > tilep_parts_total[p]) // bound itparts[p] = tilep_parts_total[p];elseparts[p] = idx;
int p = parts_saved[i];if (p == TILEP_PART_BASE) // 0:female 1:male{sprintf(ptr, "%03d", parts[p]%2);ptr += 3;}else{tilep_part_to_str(parts[p], ptr);ptr += 3;}*ptr = ':';ptr++;
int p = parts_saved[i];if (p == TILEP_PART_BASE) // 0:female 1:male{sprintf(ptr, "%03d", parts[p]%2);ptr += 3;}else{tilep_part_to_str(parts[p], ptr);ptr += 3;}*ptr = ':';ptr++;
case MISC_BOTTLED_EFREET: return TILEP_HAND1_BOTTLE;case MISC_AIR_ELEMENTAL_FAN: return TILEP_HAND1_FAN;case MISC_STONE_OF_EARTH_ELEMENTALS: return TILEP_HAND1_STONE;case MISC_DISC_OF_STORMS: return TILEP_HAND1_DISC;
case MISC_BOTTLED_EFREET: return TILEP_HAND1_BOTTLE;case MISC_AIR_ELEMENTAL_FAN: return TILEP_HAND1_FAN;case MISC_STONE_OF_EARTH_ELEMENTALS: return TILEP_HAND1_STONE;case MISC_DISC_OF_STORMS: return TILEP_HAND1_DISC;
case MISC_LAMP_OF_FIRE: return TILEP_HAND1_LANTERN;case MISC_LANTERN_OF_SHADOWS: return TILEP_HAND1_BONE_LANTERN;case MISC_HORN_OF_GERYON: return TILEP_HAND1_HORN;
case MISC_LAMP_OF_FIRE: return TILEP_HAND1_LANTERN;case MISC_LANTERN_OF_SHADOWS: return TILEP_HAND1_BONE_LANTERN;case MISC_HORN_OF_GERYON: return TILEP_HAND1_HORN;
case SPWPN_SINGING_SWORD: return TILEP_HAND1_SINGING_SWORD;case SPWPN_WRATH_OF_TROG: return TILEP_HAND1_AXE_TROG;case SPWPN_SCYTHE_OF_CURSES: return TILEP_HAND1_FINISHER;
case SPWPN_SINGING_SWORD: return TILEP_HAND1_SINGING_SWORD;case SPWPN_WRATH_OF_TROG: return TILEP_HAND1_AXE_TROG;case SPWPN_SCYTHE_OF_CURSES: return TILEP_HAND1_FINISHER;
case SPWPN_GLAIVE_OF_PRUNE: return TILEP_HAND1_GLAIVE_OF_PRUNE;case SPWPN_SCEPTRE_OF_TORMENT: return TILEP_HAND1_MACE_RUBY;
case SPWPN_GLAIVE_OF_PRUNE: return TILEP_HAND1_GLAIVE_OF_PRUNE;case SPWPN_SCEPTRE_OF_TORMENT: return TILEP_HAND1_MACE_RUBY;
case SPWPN_SWORD_OF_POWER: break;case SPWPN_KNIFE_OF_ACCURACY: break;case SPWPN_STAFF_OF_OLGREB: return TILEP_HAND1_OLGREB;case SPWPN_VAMPIRES_TOOTH: break;case SPWPN_STAFF_OF_WUCAD_MU: break;
case SPWPN_STAFF_OF_OLGREB: return TILEP_HAND1_OLGREB;case SPWPN_SWORD_OF_POWER:case SPWPN_KNIFE_OF_ACCURACY:case SPWPN_VAMPIRES_TOOTH:case SPWPN_STAFF_OF_WUCAD_MU:break;
// Bluntcase WPN_CLUB: return TILEP_HAND1_CLUB_SLANT;case WPN_MACE: return TILEP_HAND1_MACE;case WPN_GREAT_MACE: return TILEP_HAND1_GREAT_MACE;case WPN_FLAIL: return TILEP_HAND1_FRAIL;case WPN_SPIKED_FLAIL: return TILEP_HAND1_SPIKED_FRAIL;case WPN_DIRE_FLAIL: return TILEP_HAND1_GREAT_FRAIL;case WPN_MORNINGSTAR: return TILEP_HAND1_MORNINGSTAR;case WPN_EVENINGSTAR: return TILEP_HAND1_EVENINGSTAR;case WPN_GIANT_CLUB: return TILEP_HAND1_GIANT_CLUB_SLANT;case WPN_GIANT_SPIKED_CLUB: return TILEP_HAND1_GIANT_CLUB_SPIKE_SLANT;case WPN_ANCUS: return TILEP_HAND1_MACE;case WPN_WHIP: return TILEP_HAND1_WHIP;case WPN_DEMON_WHIP: return TILEP_HAND1_BLACK_WHIP;
// Bluntcase WPN_CLUB: return TILEP_HAND1_CLUB_SLANT;case WPN_MACE: return TILEP_HAND1_MACE;case WPN_GREAT_MACE: return TILEP_HAND1_GREAT_MACE;case WPN_FLAIL: return TILEP_HAND1_FRAIL;case WPN_SPIKED_FLAIL: return TILEP_HAND1_SPIKED_FRAIL;case WPN_DIRE_FLAIL: return TILEP_HAND1_GREAT_FRAIL;case WPN_MORNINGSTAR: return TILEP_HAND1_MORNINGSTAR;case WPN_EVENINGSTAR: return TILEP_HAND1_EVENINGSTAR;case WPN_GIANT_CLUB: return TILEP_HAND1_GIANT_CLUB_SLANT;case WPN_GIANT_SPIKED_CLUB: return TILEP_HAND1_GIANT_CLUB_SPIKE_SLANT;case WPN_ANCUS: return TILEP_HAND1_MACE;case WPN_WHIP: return TILEP_HAND1_WHIP;case WPN_DEMON_WHIP: return TILEP_HAND1_BLACK_WHIP;
// Edgecase WPN_KNIFE: return TILEP_HAND1_DAGGER_SLANT;case WPN_DAGGER: return TILEP_HAND1_DAGGER_SLANT;case WPN_SHORT_SWORD: return TILEP_HAND1_SHORT_SWORD_SLANT;case WPN_LONG_SWORD: return TILEP_HAND1_LONG_SWORD_SLANT;case WPN_GREAT_SWORD: return TILEP_HAND1_GREAT_SWORD_SLANT;case WPN_SCIMITAR: return TILEP_HAND1_SCIMITAR;case WPN_FALCHION: return TILEP_HAND1_FALCHION;case WPN_SABRE: return TILEP_HAND1_SABRE;case WPN_DEMON_BLADE: return TILEP_HAND1_SWORD_BLACK;case WPN_QUICK_BLADE: return TILEP_HAND1_DAGGER;case WPN_KATANA: return TILEP_HAND1_KATANA_SLANT;case WPN_DOUBLE_SWORD: return TILEP_HAND1_DOUBLE_SWORD;case WPN_TRIPLE_SWORD: return TILEP_HAND1_TRIPLE_SWORD;case WPN_BLESSED_BLADE: return TILEP_HAND1_BLESSED_BLADE;
// Edgecase WPN_KNIFE: return TILEP_HAND1_DAGGER_SLANT;case WPN_DAGGER: return TILEP_HAND1_DAGGER_SLANT;case WPN_SHORT_SWORD: return TILEP_HAND1_SHORT_SWORD_SLANT;case WPN_LONG_SWORD: return TILEP_HAND1_LONG_SWORD_SLANT;case WPN_GREAT_SWORD: return TILEP_HAND1_GREAT_SWORD_SLANT;case WPN_SCIMITAR: return TILEP_HAND1_SCIMITAR;case WPN_FALCHION: return TILEP_HAND1_FALCHION;case WPN_SABRE: return TILEP_HAND1_SABRE;case WPN_DEMON_BLADE: return TILEP_HAND1_SWORD_BLACK;case WPN_QUICK_BLADE: return TILEP_HAND1_DAGGER;case WPN_KATANA: return TILEP_HAND1_KATANA_SLANT;case WPN_DOUBLE_SWORD: return TILEP_HAND1_DOUBLE_SWORD;case WPN_TRIPLE_SWORD: return TILEP_HAND1_TRIPLE_SWORD;case WPN_BLESSED_BLADE: return TILEP_HAND1_BLESSED_BLADE;
// Axecase WPN_HAND_AXE: return TILEP_HAND1_HAND_AXE;case WPN_BATTLEAXE: return TILEP_HAND1_BATTLEAXE;case WPN_BROAD_AXE: return TILEP_HAND1_BROAD_AXE;case WPN_WAR_AXE: return TILEP_HAND1_WAR_AXE;case WPN_EXECUTIONERS_AXE: return TILEP_HAND1_EXECUTIONERS_AXE;case WPN_BARDICHE: return TILEP_HAND1_GLAIVE3;
// Axecase WPN_HAND_AXE: return TILEP_HAND1_HAND_AXE;case WPN_BATTLEAXE: return TILEP_HAND1_BATTLEAXE;case WPN_BROAD_AXE: return TILEP_HAND1_BROAD_AXE;case WPN_WAR_AXE: return TILEP_HAND1_WAR_AXE;case WPN_EXECUTIONERS_AXE: return TILEP_HAND1_EXECUTIONERS_AXE;case WPN_BARDICHE: return TILEP_HAND1_GLAIVE3;
//Polecase WPN_SPEAR: return TILEP_HAND1_SPEAR;case WPN_HALBERD: return TILEP_HAND1_HALBERD;case WPN_GLAIVE: return TILEP_HAND1_GLAIVE;case WPN_QUARTERSTAFF: return TILEP_HAND1_QUARTERSTAFF1;case WPN_SCYTHE: return TILEP_HAND1_SCYTHE;case WPN_HAMMER: return TILEP_HAND1_HAMMER;case WPN_DEMON_TRIDENT: return TILEP_HAND1_DEMON_TRIDENT;case WPN_TRIDENT: return TILEP_HAND1_TRIDENT2;case WPN_LAJATANG: return TILEP_HAND1_D_GLAIVE;
//Polecase WPN_SPEAR: return TILEP_HAND1_SPEAR;case WPN_HALBERD: return TILEP_HAND1_HALBERD;case WPN_GLAIVE: return TILEP_HAND1_GLAIVE;case WPN_QUARTERSTAFF: return TILEP_HAND1_QUARTERSTAFF1;case WPN_SCYTHE: return TILEP_HAND1_SCYTHE;case WPN_HAMMER: return TILEP_HAND1_HAMMER;case WPN_DEMON_TRIDENT: return TILEP_HAND1_DEMON_TRIDENT;case WPN_TRIDENT: return TILEP_HAND1_TRIDENT2;case WPN_LAJATANG: return TILEP_HAND1_D_GLAIVE;
//Rangedcase WPN_SLING: return TILEP_HAND1_SLING;case WPN_BOW: return TILEP_HAND1_BOW2;case WPN_CROSSBOW: return TILEP_HAND1_CROSSBOW;case WPN_HAND_CROSSBOW: return TILEP_HAND1_CROSSBOW;case WPN_BLOWGUN: return TILEP_HAND1_BLOWGUN;case WPN_LONGBOW: return TILEP_HAND1_BOW3;default: return 0;
//Rangedcase WPN_SLING: return TILEP_HAND1_SLING;case WPN_BOW: return TILEP_HAND1_BOW2;case WPN_CROSSBOW: return TILEP_HAND1_CROSSBOW;case WPN_HAND_CROSSBOW: return TILEP_HAND1_CROSSBOW;case WPN_BLOWGUN: return TILEP_HAND1_BLOWGUN;case WPN_LONGBOW: return TILEP_HAND1_BOW3;default: return 0;
case ARM_LEATHER_ARMOUR: return TILEP_BODY_LEATHER_ARMOUR3;case ARM_RING_MAIL: return TILEP_BODY_RINGMAIL;case ARM_CHAIN_MAIL: return TILEP_BODY_CHAINMAIL;case ARM_SCALE_MAIL: return TILEP_BODY_SCALEMAIL;case ARM_SPLINT_MAIL: return TILEP_BODY_BANDED;case ARM_BANDED_MAIL: return TILEP_BODY_BANDED;case ARM_PLATE_MAIL: return TILEP_BODY_PLATE_BLACK;
case ARM_LEATHER_ARMOUR: return TILEP_BODY_LEATHER_ARMOUR3;case ARM_RING_MAIL: return TILEP_BODY_RINGMAIL;case ARM_CHAIN_MAIL: return TILEP_BODY_CHAINMAIL;case ARM_SCALE_MAIL: return TILEP_BODY_SCALEMAIL;case ARM_SPLINT_MAIL: return TILEP_BODY_BANDED;case ARM_BANDED_MAIL: return TILEP_BODY_BANDED;case ARM_PLATE_MAIL: return TILEP_BODY_PLATE_BLACK;
case ARM_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_GREEN;case ARM_ICE_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_CYAN;case ARM_STEAM_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_WHITE;
case ARM_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_GREEN;case ARM_ICE_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_CYAN;case ARM_STEAM_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_WHITE;
case ARM_STORM_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_BLUE;case ARM_GOLD_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_GOLD;case ARM_SWAMP_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_BROWN;
case ARM_STORM_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_BLUE;case ARM_GOLD_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_GOLD;case ARM_SWAMP_DRAGON_HIDE: return TILEP_BODY_DRAGONSC_BROWN;
case ARM_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_GREEN;case ARM_ICE_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_CYAN;case ARM_STEAM_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_WHITE;
case ARM_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_GREEN;case ARM_ICE_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_CYAN;case ARM_STEAM_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_WHITE;
case ARM_STORM_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_BLUE;case ARM_GOLD_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_GOLD;case ARM_SWAMP_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_BROWN;
case ARM_STORM_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_BLUE;case ARM_GOLD_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_GOLD;case ARM_SWAMP_DRAGON_ARMOUR: return TILEP_BODY_DRAGONARM_BROWN;
for(i=0;i<tilep_parts_total[part];i++)if(strcmp(name, tilep_comment[ tilep_comment_ofs[part]+i])==0)return i+1;
for (i = 0; i < tilep_parts_total[part]; i++){if (strcmp(name, tilep_comment[ tilep_comment_ofs[part]+i]) == 0)return i+1;}
SPECIAL_N = 0,SPECIAL_NE = 1,SPECIAL_E = 2,SPECIAL_SE = 3,SPECIAL_S = 4,SPECIAL_SW = 5,SPECIAL_W = 6,SPECIAL_NW = 7,
SPECIAL_N = 0,SPECIAL_NE = 1,SPECIAL_E = 2,SPECIAL_SE = 3,SPECIAL_S = 4,SPECIAL_SW = 5,SPECIAL_W = 6,SPECIAL_NW = 7,
if(TileImg) ImgDestroy(TileImg);if(PlayerImg) ImgDestroy(PlayerImg);if(WallImg) ImgDestroy(WallImg);if(TileIsoImg) ImgDestroy(TileIsoImg);
if (TileImg)ImgDestroy(TileImg);if (PlayerImg)ImgDestroy(PlayerImg);if (WallImg)ImgDestroy(WallImg);if (TileIsoImg)ImgDestroy(TileIsoImg);
struct prefs *p = &pref_data[i];int idx = p->dummy_idx;if (p->type == 'I')fprintf(fp, "%s:%s=%d\n", pref_mode_name[mode],p->tagname, dummy_int[mode][idx]);if (p->type == 'S')fprintf(fp, "%s:%s=%s\n", pref_mode_name[mode],p->tagname, dummy_str[mode][idx]);
struct prefs *p = &pref_data[i];int idx = p->dummy_idx;if (p->type == 'I'){fprintf(fp, "%s:%s=%d\n", pref_mode_name[mode],p->tagname, dummy_int[mode][idx]);}else if (p->type == 'S'){fprintf(fp, "%s:%s=%s\n", pref_mode_name[mode],p->tagname, dummy_str[mode][idx]);}
bool upd_msg = false;bool upd_dngn = false;bool upd_crt = false;bool upd_map = false;bool need_resize = false;int inc = 0;
bool upd_msg = false;bool upd_dngn = false;bool upd_crt = false;bool upd_map = false;bool need_resize = false;int inc = 0;
textcolor(WHITE);cgotoxy (4, 4, GOTO_MSG);cprintf("j, k, up, down : Select pref");cgotoxy (4, 5, GOTO_MSG);cprintf("h, l, left, right : Decrease/Increase");cgotoxy (4, 6, GOTO_MSG);cprintf("H, L : Dec/Inc by 10");need_draw_msg = false;}
textcolor(WHITE);cgotoxy (4, 4, GOTO_MSG);cprintf("j, k, up, down : Select pref");cgotoxy (4, 5, GOTO_MSG);cprintf("h, l, left, right : Decrease/Increase");cgotoxy (4, 6, GOTO_MSG);cprintf("H, L : Dec/Inc by 10");need_draw_msg = false;}
struct prefs *p = &pref_data[i];cgotoxy(2, i+2, GOTO_STAT);if (i == cur_pos){textcolor(0xf0);cprintf(">");}else{textcolor(LIGHTGREY);cprintf(" ");}if (pref_data[i].type == 'I')cprintf(" %s: %3d ", p->name, *(int *)p->ptr);elsecprintf(" %s: %s", p->name, (char *)p->ptr);}textcolor(LIGHTGREY);
struct prefs *p = &pref_data[i];cgotoxy(2, i+2, GOTO_STAT);if (i == cur_pos){textcolor(0xf0);cprintf(">");}else{textcolor(LIGHTGREY);cprintf(" ");}if (pref_data[i].type == 'I')cprintf(" %s: %3d ", p->name, *(int *)p->ptr);elsecprintf(" %s: %s", p->name, (char *)p->ptr);}textcolor(LIGHTGREY);
cgotoxy(4, MAX_EDIT_PREFS+3, GOTO_STAT);cprintf("FONT: %s %d",font_name, font_size);if (UseDosChar){cgotoxy(4, MAX_EDIT_PREFS+4, GOTO_STAT);cprintf("DOSFONT: %s %d", dos_font_name, dos_font_size);}
cgotoxy(4, MAX_EDIT_PREFS+3, GOTO_STAT);cprintf("FONT: %s %d",font_name, font_size);if (UseDosChar){cgotoxy(4, MAX_EDIT_PREFS+4, GOTO_STAT);cprintf("DOSFONT: %s %d", dos_font_name, dos_font_size);}
draw_hgauge(3, 1, 3, GOTO_MSG, msg_x-2, WHITEIF(msg_x));clear_to_end_of_line();draw_vgauge(1, 1, 1, GOTO_MSG, msg_y, WHITEIF(msg_y));need_draw_stat = false;
_draw_hgauge(3, 1, 3, GOTO_MSG, msg_x-2, WHITEIF(msg_x));clear_to_end_of_line();_draw_vgauge(1, 1, 1, GOTO_MSG, msg_y, WHITEIF(msg_y));need_draw_stat = false;
if (key == 0x1b || key == '\r') break;if (key == 'j' || key == CK_DOWN){cur_pos++;need_draw_stat = true;}if (key == 'k' || key == CK_UP){cur_pos--;need_draw_stat = true;}if (key == CK_LEFT) key = 'h';if (key == CK_RIGHT) key = 'l';
if (key == 0x1b || key == '\r')break;if (key == 'j' || key == CK_DOWN){cur_pos++;need_draw_stat = true;}if (key == 'k' || key == CK_UP){cur_pos--;need_draw_stat = true;}if (key == CK_LEFT)key = 'h';if (key == CK_RIGHT)key = 'l';
switch(key){case 'l': inc=1; break;case 'L': inc=10; break;case 'h': inc=-1; break;case 'H': inc=-10; break;}
switch(key){case 'l': inc = 1; break;case 'L': inc = 10; break;case 'h': inc = -1; break;case 'H': inc = -10; break;}
int crt_x_old = crt_x;int crt_y_old = crt_y;int map_px_old = map_px;int msg_x_old = msg_x;int msg_y_old = msg_y;int dngn_x_old = dngn_x;int dngn_y_old = dngn_y;
int crt_x_old = crt_x;int crt_y_old = crt_y;int map_px_old = map_px;int msg_x_old = msg_x;int msg_y_old = msg_y;int dngn_x_old = dngn_x;int dngn_y_old = dngn_y;
if (inc==1) inc=2;if (inc==-1) inc=-2;}int olddat = *dat;(*dat)+= inc;if (*dat > p->max) *dat = p->max;if (*dat < p->min) *dat = p->min;if (olddat == *dat) continue;need_resize = true;}// changed
if (dat == &dngn_x || dat == &dngn_y){if (inc == 1)inc++;else if (inc == -1)inc--;}
// resize msg?if (msg_x != msg_x_old || msg_y != msg_y_old){upd_msg = true;region_msg->resize(msg_x, msg_y);}// resize crt?if (crt_x != crt_x_old || crt_y != crt_y_old){upd_crt = true;region_crt->resize(crt_x, crt_y);
if (olddat == *dat)continue;need_resize = true;
need_draw_stat = need_draw_msg = true;// crt screen layouts// resize msg?if (msg_x != msg_x_old || msg_y != msg_y_old){upd_msg = true;region_msg->resize(msg_x, msg_y);}// resize crt?if (crt_x != crt_x_old || crt_y != crt_y_old){upd_crt = true;region_crt->resize(crt_x, crt_y);}// resize map?if (map_px != map_px_old){
if (upd_map)region_map->resize_backbuf();if (upd_dngn){region_tile -> resize_backbuf();tile_set_force_redraw_tiles(true);TileResizeScreen(dngn_x, dngn_y);}if (region_item)region_item->resize_backbuf();if (region_item2)region_item2->resize_backbuf();tile_set_force_redraw_inv(true);tile_draw_inv(-1, REGION_INV1);
if (upd_map)region_map->resize_backbuf();if (upd_dngn){region_tile -> resize_backbuf();tile_set_force_redraw_tiles(true);TileResizeScreen(dngn_x, dngn_y);}if (region_item)region_item->resize_backbuf();if (region_item2)region_item2->resize_backbuf();tile_set_force_redraw_inv(true);tile_draw_inv(-1, REGION_INV1);
region_map->force_redraw = true;viewwindow(true, true);region_tile->redraw();region_item->redraw();}// need resize}//while
region_map->force_redraw = true;viewwindow(true, true);region_tile->redraw();region_item->redraw();} // need resize} // while-loop