(The doll definitions are too complicated.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10050 c06c8d41-db1a-0410-9941-cceddc491573
LV5VQHTUP5OPVIV6FGDX5EJTHT6UJYU7MDPNYSEWQRK3GTDIJ6MAC 22ZPAVDZLX4R66AODFVA56HH4T3XU62UUON6LYZG3GGTXCTD3YVAC KC7HKOPRUKHHZBJMSUHPELMELYEJ3MW66ZXVZW5S5KUHPMCYEZBAC DCZMEKDHQWSQCQYQD6ZXB3XOMWLVLPSPVSBVVMPXMSZF7GO3BVCAC Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC 3SK2OEKJBQUGGYU2PJ7BWBGMKS53K2JH6HKL65AWTFN6JVZRG2PAC 25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC ZQ55TG7UDO6QYKNZGYLETDPGZ7TEWMCCT5S4IU4XMQOLTM6DZYHQC RXZRRWQZH7H3E66ENDI6WTSDDTC5F7MDGIMZTEDYDE4YCUQN4CSAC BMF6Y2AW2UKQ4J2KKWZOF4MFRMIU4PJG5DT72D4H6ZUV56MXR7SQC LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC NHDY5NMP7SGSOFT6PQS2PN6YPLUEFRTD3LXNLYFHHL5G27QY65FQC K4HCETXKKZ4PYT3EG7EIRXV2P6LJXZDMKZ2J3LRPIEAWS4F4B3EAC 6FEZL55YR24UK2S72K23U25SM5YVMMT3FEYZGI4HTKQQUCATXUYAC LP5EK64IEM7AHNYQID4GGKOQJQNZLKY4DCCZN47SIUZ6IXAXH5UAC SHSIZVHSB4RPTLGMFJXUDVHF3FTEZZYCRIH4CBZP4MXOBR3HC4QAC WFG3MHLJUHQEHV65SPAIOI74NIZTGM447T4WKWKF7CMUIUNRUQOAC OCGSM3TA4KYVM4JXHTHPA2SLY7EF6NPSIU4LJDRSQ2PJ6X7BP6CQC U4EZJ7TIJLEYKFYGH6T4MHHDTN3JTO4KGCI3BLZKDNVKV3TVHUUQC 3XRTONH32W5DNI2V2SGAHXN3EHOZQ26ZXMVYL5TRP6HLQN7P4HNAC DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC ZIWGOQJ73QVKKG7UDUKHJ5BSCUFHWYNXUF342OO4CROUX6XPBVOAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC LY7DLLD7IKL6ZQPVROLDJ46XRM5CMAAEBRFDKJ4M53CPC5GFCGSQC }sub write_tiles{my $tilefile = "dc-unrand.txt";print "Updating $tilefile...\n";die "Can't write to $tilefile\n" if (-e $tilefile && !-w $tilefile);unless (open(TILES, ">$tilefile")){die "Couldn't open '$tilefile' for writing: $!\n";}my %art_by_type = ();foreach my $artefact (@all_artefacts){next if ($artefact->{NAME} =~ /DUMMY/);if ($artefact->{TILE} eq ""){print STDERR "No tile defined for '$artefact->{NAME}'\n";next;}# The path always has the form /item/$folder/artefact.my $type = $artefact->{base_type} || "";my $folder = "";if ($type eq "OBJ_WEAPONS"){$folder = "weapon";}elsif ($type eq "OBJ_ARMOUR"){$folder = "armour";}elsif ($type eq "OBJ_JEWELLERY"){if ($artefact->{sub_type} =~ /RING_/){$folder = "ring";}else{$folder = "amulet";}}else{next;}my $definition = "$artefact->{TILE} UNRAND_$artefact->{_ENUM}";my $needrim = ($artefact->{TILERIM} ? "1" : "0");if (defined $art_by_type{$folder}){if (defined $art_by_type{$folder}{$needrim}){push @{$art_by_type{$folder}{$needrim}}, $definition;}else{$art_by_type{$folder}{$needrim} = [$definition];}}else{$art_by_type{$folder} = {$needrim => [$definition]};}}# Output the tile definitions sorted by type (and thus path).foreach my $type (keys %art_by_type){print TILES "%sdir item/$type/artefact\n";foreach my $needrim (sort keys %{$art_by_type{$type}}){print TILES "%rim 1\n" if ($needrim);foreach my $def (@{$art_by_type{$type}{$needrim}}){print TILES "$def\n";}print TILES "%rim 0\n" if ($needrim);}print TILES "\n";}close(TILES);# Create tiledef-unrand.cc for the function unrandart_to_tile().# Should we also create tiledef-unrand.h this way?$tilefile = "tiledef-unrand.cc";print "Updating $tilefile...\n";die "Can't write to $tilefile\n" if (-e $tilefile && !-w $tilefile);unless (open(TILES, ">$tilefile")){die "Couldn't open '$tilefile' for writing: $!\n";}print TILES << "HEADER_END";// This file has been automatically generated.#include "AppHdr.h"#include "tiledef-unrand.h"#include "artefact.h"#include "tiledef-main.h"int unrandart_to_tile(int unrand){switch (unrand){HEADER_ENDmy $longest_enum = 0;foreach my $artefact (@all_artefacts){my $enum = $artefact->{_ENUM};my $len = length($enum);$longest_enum = $len if ($len > $longest_enum);}$longest_enum += length("UNRAND_");foreach my $artefact (@all_artefacts){next if ($artefact->{NAME} =~ /DUMMY/);next if ($artefact->{TILE} eq "");my $enum = "UNRAND_$artefact->{_ENUM}";print TILES (" " x 4) . "case $enum:". " " x ($longest_enum - length($enum) + 2) . "return TILE_$enum;\n";}print TILES (" " x 4) . "default: return -1;\n";print TILES (" " x 4) . "}\n";print TILES "}\n\n";close(TILES);
switch (idx){case UNRAND_SINGING_SWORD: return TILE_SPWPN_SINGING_SWORD;case UNRAND_TROG: return TILE_SPWPN_WRATH_OF_TROG;case UNRAND_CURSES: return TILE_SPWPN_SCYTHE_OF_CURSES;case UNRAND_VARIABILITY: return TILE_SPWPN_MACE_OF_VARIABILITY;case UNRAND_PRUNE: return TILE_SPWPN_GLAIVE_OF_PRUNE;case UNRAND_TORMENT: return TILE_SPWPN_SCEPTRE_OF_TORMENT;case UNRAND_ZONGULDROK: return TILE_SPWPN_SWORD_OF_ZONGULDROK;case UNRAND_CEREBOV: return TILE_SPWPN_SWORD_OF_CEREBOV;case UNRAND_DISPATER: return TILE_SPWPN_STAFF_OF_DISPATER;case UNRAND_ASMODEUS: return TILE_SPWPN_SCEPTRE_OF_ASMODEUS;case UNRAND_POWER: return TILE_SPWPN_SWORD_OF_POWER;case UNRAND_OLGREB: return TILE_SPWPN_STAFF_OF_OLGREB;case UNRAND_VAMPIRES_TOOTH: return TILE_SPWPN_VAMPIRES_TOOTH;case UNRAND_WUCAD_MU: return TILE_SPWPN_STAFF_OF_WUCAD_MU;// Weaponscase UNRAND_BLOODBANE: return TILE_URAND_BLOODBANE;case UNRAND_FLAMING_DEATH: return TILE_URAND_FLAMING_DEATH;case UNRAND_BRILLIANCE: return TILE_URAND_BRILLIANCE;case UNRAND_LEECH: return TILE_URAND_LEECH;case UNRAND_CHILLY_DEATH: return TILE_URAND_CHILLY_DEATH;case UNRAND_MORG: return TILE_URAND_MORG;case UNRAND_FINISHER: return TILE_URAND_FINISHER;case UNRAND_PUNK: return TILE_URAND_PUNK;case UNRAND_KRISHNA: return TILE_URAND_KRISHNA;case UNRAND_SKULLCRUSHER: return TILE_URAND_SKULLCRUSHER;case UNRAND_BLOWGUN_ASSASSIN: return TILE_URAND_BLOWGUN_ASSASSIN;case UNRAND_GUARD: return TILE_URAND_GUARD;case UNRAND_JIHAD: return TILE_URAND_JIHAD;case UNRAND_DOOM_KNIGHT: return TILE_URAND_DOOM_KNIGHT;case UNRAND_EOS: return TILE_URAND_EOS;case UNRAND_BOTONO: return TILE_URAND_BOTONO;case UNRAND_OCTOPUS_KING: return TILE_URAND_OCTOPUS_KING;case UNRAND_ARGA: return TILE_URAND_ARGA;case UNRAND_ELEMENTAL_STAFF: return TILE_URAND_ELEMENTAL;case UNRAND_SNIPER: return TILE_URAND_SNIPER;case UNRAND_PLUTONIUM_SWORD: return TILE_URAND_PLUTONIUM;case UNRAND_UNDEADHUNTER: return TILE_URAND_UNDEADHUNTER;case UNRAND_WYRMBANE: return TILE_URAND_WYRMBANE;case UNRAND_SPRIGGANS_KNIFE: return TILE_URAND_SPRIGGANS_KNIFE;case UNRAND_SERPENT_SCOURGE: return TILE_URAND_SERPENT_SCOURGE;case UNRAND_ACCURACY: return TILE_URAND_KNIFE_OF_ACCURACY;case UNRAND_HELLFIRE: return TILE_URAND_FIERY_DEVIL;case UNRAND_PIERCER: return TILE_URAND_PIERCER;case UNRAND_CRYSTAL_SPEAR: return TILE_URAND_CRYSTAL_SPEAR;// Armourcase UNRAND_IGNORANCE: return TILE_URAND_IGNORANCE;case UNRAND_AUGMENTATION: return TILE_URAND_AUGMENTATION;case UNRAND_THIEF: return TILE_URAND_THIEF;case UNRAND_BULLSEYE: return TILE_URAND_BULLSEYE;case UNRAND_DYROVEPREVA: return TILE_URAND_DYROVEPREVA;case UNRAND_MISFORTUNE: return TILE_URAND_MISFORTUNE;case UNRAND_FLASH: return TILE_URAND_FLASH;case UNRAND_LEAR: return TILE_URAND_LEAR;case UNRAND_ZHOR: return TILE_URAND_ZHOR;case UNRAND_SALAMANDER: return TILE_URAND_SALAMANDER;case UNRAND_WAR: return TILE_URAND_WAR;case UNRAND_RESISTANCE: return TILE_URAND_RESISTANCE;case UNRAND_FOLLY: return TILE_URAND_FOLLY;case UNRAND_MAXWELL: return TILE_URAND_MAXWELL;case UNRAND_DRAGONMASK: return TILE_URAND_DRAGONMASK;case UNRAND_NIGHT: return TILE_URAND_NIGHT;case UNRAND_DRAGON_KING: return TILE_URAND_DRAGON_KING;case UNRAND_ALCHEMIST: return TILE_URAND_ALCHEMIST;case UNRAND_FENCERS_GLOVES: return TILE_URAND_FENCER;case UNRAND_BOOTS_ASSASSIN: return TILE_URAND_BOOTS_ASSASSIN;case UNRAND_STARLIGHT: return TILE_URAND_STARLIGHT;case UNRAND_RATSKIN_CLOAK: return TILE_URAND_RATSKIN_CLOAK;
const int tile = unrandart_to_tile(idx);if (tile != -1)return tile;
// Jewellerycase UNRAND_SHADOWS: return TILE_URAND_SHADOWS;case UNRAND_AIR: return TILE_URAND_AIR;case UNRAND_CEKUGOB: return TILE_URAND_CEKUGOB;case UNRAND_FOUR_WINDS: return TILE_URAND_FOUR_WINDS;case UNRAND_BLOODLUST: return TILE_URAND_BLOODLUST;case UNRAND_SHAOLIN: return TILE_URAND_SHAOLIN;case UNRAND_ROBUSTNESS: return TILE_URAND_ROBUSTNESS;case UNRAND_MAGE: return TILE_URAND_MAGE;case UNRAND_SHIELDING: return TILE_URAND_BROOCH_OF_SHIELDING;default: return TILE_TODO;}
return TILE_TODO;
%rim 0%sdir item/armour/artefacturand_ignorance URAND_IGNORANCEurand_augmentation URAND_AUGMENTATIONurand_thief URAND_THIEFurand_bullseye URAND_BULLSEYEurand_dyrovepreva URAND_DYROVEPREVAurand_misfortune URAND_MISFORTUNEurand_flash URAND_FLASHurand_lear URAND_LEARurand_zhor URAND_ZHORurand_salamander URAND_SALAMANDERurand_war URAND_WARurand_resistance URAND_RESISTANCEurand_folly URAND_FOLLYurand_maxwell URAND_MAXWELLurand_dragonmask URAND_DRAGONMASKurand_night URAND_NIGHTurand_dragon_king URAND_DRAGON_KINGurand_alchemist URAND_ALCHEMISTurand_fencer URAND_FENCERurand_starlight URAND_STARLIGHT%sdir item/ring/artefacturand_shadows URAND_SHADOWSurand_shaolin URAND_SHAOLINurand_robustness URAND_ROBUSTNESSurand_mage URAND_MAGE%sdir item/amulet/artefacturand_cekugob URAND_CEKUGOBurand_four_winds URAND_FOUR_WINDSurand_bloodlust URAND_BLOODLUSTurand_brooch_of_shielding URAND_BROOCH_OF_SHIELDINGurand_air URAND_AIRurand_ratskin_cloak URAND_RATSKIN_CLOAKurand_assassin URAND_BOOTS_ASSASSIN%rim 1urand_serpent_scourge URAND_SERPENT_SCOURGEurand_wyrmbane URAND_WYRMBANEurand_spriggans_knife URAND_SPRIGGANS_KNIFEurand_knife_of_accuracy URAND_KNIFE_OF_ACCURACYurand_blowgun URAND_BLOWGUN_ASSASSIN%sdir item/weapon/artefacturand_bloodbane URAND_BLOODBANEurand_flaming_death URAND_FLAMING_DEATHurand_brilliance URAND_BRILLIANCEurand_leech URAND_LEECHurand_chilly_death URAND_CHILLY_DEATHurand_morg URAND_MORGurand_finisher URAND_FINISHERurand_punk URAND_PUNKurand_krishna URAND_KRISHNAurand_skullcrusher URAND_SKULLCRUSHERurand_guard URAND_GUARDurand_jihad URAND_JIHADurand_fiery_devil URAND_FIERY_DEVILurand_doom_knight URAND_DOOM_KNIGHTurand_eos URAND_EOSurand_octopus_king URAND_OCTOPUS_KINGurand_arga URAND_ARGAurand_elemental URAND_ELEMENTALurand_sniper URAND_SNIPERurand_plutonium URAND_PLUTONIUMurand_undeadhunter URAND_UNDEADHUNTERurand_crystal_spear URAND_CRYSTAL_SPEARurand_piercer URAND_PIERCERurand_botono URAND_BOTONO
#ifndef TILEDEF_UNRAND_H#define TILEDEF_UNRAND_Hint unrandart_to_tile(int unrand);#endif
// This file has been automatically generated.#include "AppHdr.h"#include "tiledef-unrand.h"#include "artefact.h"#include "tiledef-main.h"int unrandart_to_tile(int unrand){switch (unrand){case UNRAND_SINGING_SWORD: return TILE_UNRAND_SINGING_SWORD;case UNRAND_TROG: return TILE_UNRAND_TROG;case UNRAND_VARIABILITY: return TILE_UNRAND_VARIABILITY;case UNRAND_PRUNE: return TILE_UNRAND_PRUNE;case UNRAND_POWER: return TILE_UNRAND_POWER;case UNRAND_OLGREB: return TILE_UNRAND_OLGREB;case UNRAND_WUCAD_MU: return TILE_UNRAND_WUCAD_MU;case UNRAND_VAMPIRES_TOOTH: return TILE_UNRAND_VAMPIRES_TOOTH;case UNRAND_CURSES: return TILE_UNRAND_CURSES;case UNRAND_TORMENT: return TILE_UNRAND_TORMENT;case UNRAND_ZONGULDROK: return TILE_UNRAND_ZONGULDROK;case UNRAND_CEREBOV: return TILE_UNRAND_CEREBOV;case UNRAND_DISPATER: return TILE_UNRAND_DISPATER;case UNRAND_ASMODEUS: return TILE_UNRAND_ASMODEUS;case UNRAND_BLOODBANE: return TILE_UNRAND_BLOODBANE;case UNRAND_FLAMING_DEATH: return TILE_UNRAND_FLAMING_DEATH;case UNRAND_BRILLIANCE: return TILE_UNRAND_BRILLIANCE;case UNRAND_LEECH: return TILE_UNRAND_LEECH;case UNRAND_CHILLY_DEATH: return TILE_UNRAND_CHILLY_DEATH;case UNRAND_MORG: return TILE_UNRAND_MORG;case UNRAND_FINISHER: return TILE_UNRAND_FINISHER;case UNRAND_PUNK: return TILE_UNRAND_PUNK;case UNRAND_KRISHNA: return TILE_UNRAND_KRISHNA;case UNRAND_SKULLCRUSHER: return TILE_UNRAND_SKULLCRUSHER;case UNRAND_GUARD: return TILE_UNRAND_GUARD;case UNRAND_JIHAD: return TILE_UNRAND_JIHAD;case UNRAND_HELLFIRE: return TILE_UNRAND_HELLFIRE;case UNRAND_DOOM_KNIGHT: return TILE_UNRAND_DOOM_KNIGHT;case UNRAND_EOS: return TILE_UNRAND_EOS;case UNRAND_BOTONO: return TILE_UNRAND_BOTONO;case UNRAND_OCTOPUS_KING: return TILE_UNRAND_OCTOPUS_KING;case UNRAND_ARGA: return TILE_UNRAND_ARGA;case UNRAND_ELEMENTAL_STAFF: return TILE_UNRAND_ELEMENTAL_STAFF;case UNRAND_SNIPER: return TILE_UNRAND_SNIPER;case UNRAND_PIERCER: return TILE_UNRAND_PIERCER;case UNRAND_BLOWGUN_ASSASSIN: return TILE_UNRAND_BLOWGUN_ASSASSIN;case UNRAND_WYRMBANE: return TILE_UNRAND_WYRMBANE;case UNRAND_SPRIGGANS_KNIFE: return TILE_UNRAND_SPRIGGANS_KNIFE;case UNRAND_PLUTONIUM_SWORD: return TILE_UNRAND_PLUTONIUM_SWORD;case UNRAND_UNDEADHUNTER: return TILE_UNRAND_UNDEADHUNTER;case UNRAND_SERPENT_SCOURGE: return TILE_UNRAND_SERPENT_SCOURGE;case UNRAND_ACCURACY: return TILE_UNRAND_ACCURACY;case UNRAND_CRYSTAL_SPEAR: return TILE_UNRAND_CRYSTAL_SPEAR;case UNRAND_IGNORANCE: return TILE_UNRAND_IGNORANCE;case UNRAND_AUGMENTATION: return TILE_UNRAND_AUGMENTATION;case UNRAND_THIEF: return TILE_UNRAND_THIEF;case UNRAND_BULLSEYE: return TILE_UNRAND_BULLSEYE;case UNRAND_DYROVEPREVA: return TILE_UNRAND_DYROVEPREVA;case UNRAND_MISFORTUNE: return TILE_UNRAND_MISFORTUNE;case UNRAND_FLASH: return TILE_UNRAND_FLASH;case UNRAND_BOOTS_ASSASSIN: return TILE_UNRAND_BOOTS_ASSASSIN;case UNRAND_LEAR: return TILE_UNRAND_LEAR;case UNRAND_ZHOR: return TILE_UNRAND_ZHOR;case UNRAND_SALAMANDER: return TILE_UNRAND_SALAMANDER;case UNRAND_WAR: return TILE_UNRAND_WAR;case UNRAND_RESISTANCE: return TILE_UNRAND_RESISTANCE;case UNRAND_FOLLY: return TILE_UNRAND_FOLLY;case UNRAND_MAXWELL: return TILE_UNRAND_MAXWELL;case UNRAND_DRAGONMASK: return TILE_UNRAND_DRAGONMASK;case UNRAND_NIGHT: return TILE_UNRAND_NIGHT;case UNRAND_DRAGON_KING: return TILE_UNRAND_DRAGON_KING;case UNRAND_ALCHEMIST: return TILE_UNRAND_ALCHEMIST;case UNRAND_FENCERS_GLOVES: return TILE_UNRAND_FENCERS_GLOVES;case UNRAND_STARLIGHT: return TILE_UNRAND_STARLIGHT;case UNRAND_RATSKIN_CLOAK: return TILE_UNRAND_RATSKIN_CLOAK;case UNRAND_AIR: return TILE_UNRAND_AIR;case UNRAND_SHADOWS: return TILE_UNRAND_SHADOWS;case UNRAND_CEKUGOB: return TILE_UNRAND_CEKUGOB;case UNRAND_FOUR_WINDS: return TILE_UNRAND_FOUR_WINDS;case UNRAND_BLOODLUST: return TILE_UNRAND_BLOODLUST;case UNRAND_SHAOLIN: return TILE_UNRAND_SHAOLIN;case UNRAND_ROBUSTNESS: return TILE_UNRAND_ROBUSTNESS;case UNRAND_MAGE: return TILE_UNRAND_MAGE;case UNRAND_SHIELDING: return TILE_UNRAND_SHIELDING;default: return -1;}}
%sdir item/armour/artefacturand_ignorance UNRAND_IGNORANCEurand_augmentation UNRAND_AUGMENTATIONurand_thief UNRAND_THIEFurand_bullseye UNRAND_BULLSEYEurand_dyrovepreva UNRAND_DYROVEPREVAurand_misfortune UNRAND_MISFORTUNEurand_flash UNRAND_FLASHurand_assassin UNRAND_BOOTS_ASSASSINurand_lear UNRAND_LEARurand_zhor UNRAND_ZHORurand_salamander UNRAND_SALAMANDERurand_war UNRAND_WARurand_resistance UNRAND_RESISTANCEurand_folly UNRAND_FOLLYurand_maxwell UNRAND_MAXWELLurand_dragonmask UNRAND_DRAGONMASKurand_night UNRAND_NIGHTurand_dragon_king UNRAND_DRAGON_KINGurand_alchemist UNRAND_ALCHEMISTurand_fencer UNRAND_FENCERS_GLOVESurand_starlight UNRAND_STARLIGHTurand_ratskin_cloak UNRAND_RATSKIN_CLOAK%sdir item/weapon/artefactspwpn_singing_sword UNRAND_SINGING_SWORDspwpn_wrath_of_trog UNRAND_TROGspwpn_mace_of_variability UNRAND_VARIABILITYspwpn_glaive_of_prune UNRAND_PRUNEspwpn_staff_of_olgreb UNRAND_OLGREBspwpn_wucad_mu UNRAND_WUCAD_MUspwpn_vampires_tooth UNRAND_VAMPIRES_TOOTHspwpn_scythe_of_curses UNRAND_CURSESurand_bloodbane UNRAND_BLOODBANEurand_flaming_death UNRAND_FLAMING_DEATHurand_brilliance UNRAND_BRILLIANCEurand_leech UNRAND_LEECHurand_chilly_death UNRAND_CHILLY_DEATHurand_morg UNRAND_MORGurand_finisher UNRAND_FINISHERurand_punk UNRAND_PUNKurand_krishna UNRAND_KRISHNAurand_skullcrusher UNRAND_SKULLCRUSHERurand_guard UNRAND_GUARDurand_jihad UNRAND_JIHADurand_fiery_devil UNRAND_HELLFIREurand_doom_knight UNRAND_DOOM_KNIGHTurand_eos UNRAND_EOSurand_botono UNRAND_BOTONOurand_octopus_king UNRAND_OCTOPUS_KINGurand_arga UNRAND_ARGAurand_elemental UNRAND_ELEMENTAL_STAFFurand_sniper UNRAND_SNIPERurand_piercer UNRAND_PIERCERurand_plutonium UNRAND_PLUTONIUM_SWORDurand_undeadhunter UNRAND_UNDEADHUNTERurand_crystal_spear UNRAND_CRYSTAL_SPEAR%rim 1spwpn_sword_of_power UNRAND_POWERspwpn_sceptre_of_torment UNRAND_TORMENTspwpn_sword_of_zonguldrok UNRAND_ZONGULDROKspwpn_sword_of_cerebov UNRAND_CEREBOVspwpn_staff_of_dispater UNRAND_DISPATERspwpn_sceptre_of_asmodeus UNRAND_ASMODEUSurand_blowgun UNRAND_BLOWGUN_ASSASSINurand_wyrmbane UNRAND_WYRMBANEurand_spriggans_knife UNRAND_SPRIGGANS_KNIFEurand_serpent_scourge UNRAND_SERPENT_SCOURGEurand_knife_of_accuracy UNRAND_ACCURACY%rim 0%sdir item/amulet/artefacturand_air UNRAND_AIRurand_cekugob UNRAND_CEKUGOBurand_four_winds UNRAND_FOUR_WINDSurand_bloodlust UNRAND_BLOODLUSTurand_brooch_of_shielding UNRAND_SHIELDING%sdir item/ring/artefacturand_shadows UNRAND_SHADOWSurand_shaolin UNRAND_SHAOLINurand_robustness UNRAND_ROBUSTNESSurand_mage UNRAND_MAGE
#####OBJ_WEAPONS#####ARTIFACTS%sdir item/weapon/artefactspwpn_singing_sword SPWPN_SINGING_SWORDspwpn_wrath_of_trog SPWPN_WRATH_OF_TROGspwpn_scythe_of_curses SPWPN_SCYTHE_OF_CURSESspwpn_mace_of_variability SPWPN_MACE_OF_VARIABILITYspwpn_glaive_of_prune SPWPN_GLAIVE_OF_PRUNE%rim 1spwpn_sceptre_of_torment SPWPN_SCEPTRE_OF_TORMENTspwpn_sword_of_zonguldrok SPWPN_SWORD_OF_ZONGULDROKspwpn_sword_of_cerebov SPWPN_SWORD_OF_CEREBOVspwpn_staff_of_dispater SPWPN_STAFF_OF_DISPATERspwpn_sceptre_of_asmodeus SPWPN_SCEPTRE_OF_ASMODEUSspwpn_sword_of_power SPWPN_SWORD_OF_POWER%rim 0spwpn_staff_of_olgreb SPWPN_STAFF_OF_OLGREBspwpn_vampires_tooth SPWPN_VAMPIRES_TOOTHspwpn_wucad_mu SPWPN_STAFF_OF_WUCAD_MU
# player doll. The former needs to be placed into rltiles/item and defined in# dc-item.txt, the latter in the appropriate player/ subfolder and defined in# dc-player.txt. In tilepick.cc the unrandart must then be assigned to the tile# name defined in the dc-***.txt.# For a start, placeholders (e.g. reference to the base type tiles) are fine,# but they'll eventually need to be replaced with proper tiles.
# player doll. For the former, you can define the image file within this# file using the keyword TILE. The files are assumed to be png and the syntax# does not include the file type. The artefacts' base type decides where a# tile needs to be placed. These are as follows:# Weapons: rltiles/item/weapon/artefact# Armour: rltiles/item/armour/artefact# Rings: rltiles/item/ring/artefact# Amulets: rltiles/item/amulet/artefact## For a start, placeholders (e.g. the base type tiles) are fine, but they'll# eventually need to be replaced with proper tiles.# If the tile requires a black outline (because it would be hard to see# otherwise) add "BOOL: tilerim". Otherwise the image is used without# modification.## For the equipment tile, place the tile into the appropriate subfolder of# player/ subfolder and define it in dc-player.txt. You'll also need to assign# these tiles to the corresponding artefacts in tilepick.cc, using the keyword# "TILEP_" plus the equipment slot (as defined by the most recent "parts_ctg"# in dc-player.txt) plus the actual definition, e.g. TILEP_CLOAK_RATSKIN_CLOAK.# To find the places where you'll need to add your new tile, simply search# tilepick.cc for another artefact of the same base type. If no special tile# has been defined the code will fall through to tiles according to the# base type and colour.#
# PLUS: The pluses of artefact. For an object with two pluses,# is specified with "plus/plus2". For an object with just one plus,# is specified with "plus".
# PLUS: The pluses of the artefact. For an object with two pluses,# this is specified with "plus/plus2". For an object with just one plus,# this is specified with "plus".
NAME: Sword of CerebovAPPEAR: great serpentine swordOBJ: OBJ_WEAPONS/WPN_GREAT_SWORDPLUS: +6/+6COLOUR: YELLOWBRAND: SPWPN_FLAMINGBOOL: cursedDESC: Eerie flames cover its twisted blade.
NAME: Sword of CerebovAPPEAR: great serpentine swordOBJ: OBJ_WEAPONS/WPN_GREAT_SWORDPLUS: +6/+6COLOUR: YELLOWTILE: spwpn_sword_of_cerebovBRAND: SPWPN_FLAMINGBOOL: cursed, tilerimDESC: Eerie flames cover its twisted blade.
NAME: scimitar of Flaming DeathAPPEAR: smoking scimitarOBJ: OBJ_WEAPONS/WPN_SCIMITARPLUS: +7/+5COLOUR: REDBRAND: SPWPN_FLAMINGFIRE: 2COLD: -1BOOL: poisonMAGIC: 20
NAME: scimitar of Flaming DeathAPPEAR: smoking scimitarOBJ: OBJ_WEAPONS/WPN_SCIMITARPLUS: +7/+5COLOUR: REDTILE: urand_flaming_deathBRAND: SPWPN_FLAMINGFIRE: 2COLD: -1BOOL: poisonMAGIC: 20
NAME: demon blade "Leech"APPEAR: runed demon bladeOBJ: OBJ_WEAPONS/WPN_DEMON_BLADEPLUS: +13/+4COLOUR: MAGENTABRAND: SPWPN_VAMPIRICISMEV: -1STR: -1INT: -1DEX: -1BOOL: lifeCURSED: 4
NAME: demon blade "Leech"APPEAR: runed demon bladeOBJ: OBJ_WEAPONS/WPN_DEMON_BLADEPLUS: +13/+4COLOUR: MAGENTATILE: urand_leechBRAND: SPWPN_VAMPIRICISMEV: -1STR: -1INT: -1DEX: -1BOOL: lifeCURSED: 4
NAME: dagger of Chilly DeathAPPEAR: sapphire daggerOBJ: OBJ_WEAPONS/WPN_DAGGERPLUS: +5/+7COLOUR: LIGHTBLUEBRAND: SPWPN_FREEZINGFIRE: -1COLD: 2MAGIC: 20BOOL: poisonDESC: A dagger made of one huge piece of sapphire.
NAME: dagger of Chilly DeathAPPEAR: sapphire daggerOBJ: OBJ_WEAPONS/WPN_DAGGERPLUS: +5/+7COLOUR: LIGHTBLUETILE: urand_chilly_deathBRAND: SPWPN_FREEZINGFIRE: -1COLD: 2MAGIC: 20BOOL: poisonDESC: A dagger made of one huge piece of sapphire.
NAME: scythe "Finisher"APPEAR: blackened scytheOBJ: OBJ_WEAPONS/WPN_SCYTHEPLUS: +3/+5COLOUR: DARKGREYBRAND: SPWPN_SPEEDSTR: 3BOOL: cursedDESC: A long and sharp scythe, specially modified for combat purposes.
NAME: scythe "Finisher"APPEAR: blackened scytheOBJ: OBJ_WEAPONS/WPN_SCYTHEPLUS: +3/+5COLOUR: DARKGREYTILE: urand_finisherBRAND: SPWPN_SPEEDSTR: 3BOOL: cursedDESC: A long and sharp scythe, specially modified for combat purposes.
NAME: sling "Punk"APPEAR: blue slingOBJ: OBJ_WEAPONS/WPN_SLINGPLUS: +9/+12COLOUR: LIGHTBLUEBRAND: SPWPN_FROSTCOLD: 1DESC: A sling made of weird blue leather.
NAME: sling "Punk"APPEAR: blue slingOBJ: OBJ_WEAPONS/WPN_SLINGPLUS: +9/+12COLOUR: LIGHTBLUETILE: urand_punkBRAND: SPWPN_FROSTCOLD: 1DESC: A sling made of weird blue leather.
NAME: giant club "Skullcrusher"APPEAR: brutal giant clubOBJ: OBJ_WEAPONS/WPN_GIANT_CLUBPLUS: +0/+5COLOUR: BROWNBRAND: SPWPN_SPEEDSTR: 5
NAME: giant club "Skullcrusher"APPEAR: brutal giant clubOBJ: OBJ_WEAPONS/WPN_GIANT_CLUBPLUS: +0/+5COLOUR: BROWNTILE: urand_skullcrusherBRAND: SPWPN_SPEEDSTR: 5
NAME: crossbow "Hellfire"APPEAR: flaming crossbowOBJ: OBJ_WEAPONS/WPN_CROSSBOWPLUS: +6/+9COLOUR: LIGHTREDBRAND: SPWPN_FLAMEFIRE: 2COLD: -1MAGIC: 40DESC: A flaming crossbow, forged in the fires of the Hells.
NAME: crossbow "Hellfire"APPEAR: flaming crossbowOBJ: OBJ_WEAPONS/WPN_CROSSBOWPLUS: +6/+9COLOUR: LIGHTREDTILE: urand_fiery_devilBRAND: SPWPN_FLAMEFIRE: 2COLD: -1MAGIC: 40DESC: A flaming crossbow, forged in the fires of the Hells.
NAME: hand crossbow "Sniper"APPEAR: black crossbowOBJ: OBJ_WEAPONS/WPN_HAND_CROSSBOWPLUS: +10/+0COLOUR: DARKGREYBRAND: SPWPN_VENOMBOOL: seeinvDESC: A hand crossbow made of some black material.
NAME: hand crossbow "Sniper"APPEAR: black crossbowOBJ: OBJ_WEAPONS/WPN_HAND_CROSSBOWPLUS: +10/+0COLOUR: DARKGREYTILE: urand_sniperBRAND: SPWPN_VENOMBOOL: seeinvDESC: A hand crossbow made of some black material.
NAME: longbow "Piercer"APPEAR: very long metal bowOBJ: OBJ_WEAPONS/WPN_LONGBOWPLUS: +2/+10COLOUR: CYANBRAND: SPWPN_VORPALEV: -2DESC: An exceptionally large metal longbow.
NAME: longbow "Piercer"APPEAR: very long metal bowOBJ: OBJ_WEAPONS/WPN_LONGBOWPLUS: +2/+10COLOUR: CYANTILE: urand_piercerBRAND: SPWPN_VORPALEV: -2DESC: An exceptionally large metal longbow.
NAME: great mace "Undeadhunter"APPEAR: great steel maceOBJ: OBJ_WEAPONS/WPN_GREAT_MACEPLUS: +7/+7COLOUR: LIGHTGREYBRAND: SPWPN_HOLY_WRATHBOOL: life
NAME: great mace "Undeadhunter"APPEAR: great steel maceOBJ: OBJ_WEAPONS/WPN_GREAT_MACEPLUS: +7/+7COLOUR: LIGHTGREYTILE: urand_undeadhunterBRAND: SPWPN_HOLY_WRATHBOOL: life
NAME: shield of IgnoranceAPPEAR: dull large shieldOBJ: OBJ_ARMOUR/ARM_LARGE_SHIELDPLUS: +5COLOUR: BROWNAC: 2EV: 2INT: -6BOOL: lifeCURSED: 3
NAME: shield of IgnoranceAPPEAR: dull large shieldOBJ: OBJ_ARMOUR/ARM_LARGE_SHIELDPLUS: +5COLOUR: BROWNTILE: urand_ignoranceAC: 2EV: 2INT: -6BOOL: lifeCURSED: 3
NAME: robe of AugmentationAPPEAR: silk robeOBJ: OBJ_ARMOUR/ARM_ROBEPLUS: +4COLOUR: LIGHTREDSTR: 2INT: 2DEX: 2DESC: A robe made of the finest silk.
NAME: robe of AugmentationAPPEAR: silk robeOBJ: OBJ_ARMOUR/ARM_ROBEPLUS: +4COLOUR: LIGHTREDTILE: urand_augmentationSTR: 2INT: 2DEX: 2DESC: A robe made of the finest silk.
NAME: crown of DyroveprevaAPPEAR: jewelled bronze crownOBJ: OBJ_ARMOUR/ARM_CAPPLUS: +3COLOUR: BROWNINT: 2METAB: 1BOOL: elec, seeinvDESC: A large crown of dull bronze, set with a dazzling array of gemstones.
NAME: crown of DyroveprevaAPPEAR: jewelled bronze crownOBJ: OBJ_ARMOUR/ARM_CAPPLUS: +3COLOUR: BROWNTILE: urand_dyroveprevaINT: 2METAB: 1BOOL: elec, seeinvDESC: A large crown of dull bronze, set with a dazzling array of gemstones.
NAME: skin of ZhorAPPEAR: smelly skinOBJ: OBJ_ARMOUR/ARM_ANIMAL_SKINPLUS: +4COLOUR: BROWNCOLD: 2DESC: The skin of some strange animal.
NAME: skin of ZhorAPPEAR: smelly skinOBJ: OBJ_ARMOUR/ARM_ANIMAL_SKINPLUS: +4COLOUR: BROWNTILE: urand_zhorCOLD: 2DESC: The skin of some strange animal.
ENUM: DRAGONMASKNAME: mask of the DragonAPPEAR: blue maskOBJ: OBJ_ARMOUR/ARM_CAPCOLOUR: BLUEMAGIC: 40ACC: 2DAM: 2BOOL: seeinvDESC: A blue mask.
ENUM: DRAGONMASKNAME: mask of the DragonAPPEAR: blue maskOBJ: OBJ_ARMOUR/ARM_CAPCOLOUR: BLUETILE: urand_dragonmaskMAGIC: 40ACC: 2DAM: 2BOOL: seeinvDESC: A blue mask.
NAME: armour of the Dragon KingAPPEAR: shiny dragon armourOBJ: OBJ_ARMOUR/ARM_GOLD_DRAGON_ARMOURPLUS: +5COLOUR: YELLOWMAGIC: 50
NAME: armour of the Dragon KingAPPEAR: shiny dragon armourOBJ: OBJ_ARMOUR/ARM_GOLD_DRAGON_ARMOURPLUS: +5COLOUR: YELLOWTILE: urand_dragon_kingMAGIC: 50
NAME: hat of the AlchemistAPPEAR: dirty hatOBJ: OBJ_ARMOUR/ARM_WIZARD_HATPLUS: +2COLOUR: MAGENTAFIRE: 1COLD: 1MAGIC: 30BOOL: elecDESC: A dirty hat.
NAME: hat of the AlchemistAPPEAR: dirty hatOBJ: OBJ_ARMOUR/ARM_WIZARD_HATPLUS: +2COLOUR: MAGENTATILE: urand_alchemistFIRE: 1COLD: 1MAGIC: 30BOOL: elecDESC: A dirty hat.
NAME: Fencer's glovesAPPEAR: silk glovesOBJ: OBJ_ARMOUR/ARM_GLOVESPLUS: +2COLOUR: WHITEEV: 3DEX: 3ACC: 5DESC: A pair of gloves made of white silk.
NAME: Fencer's glovesAPPEAR: silk glovesOBJ: OBJ_ARMOUR/ARM_GLOVESPLUS: +2COLOUR: WHITETILE: urand_fencerEV: 3DEX: 3ACC: 5DESC: A pair of gloves made of white silk.
NAME: amulet of the Four WindsAPPEAR: jade amuletOBJ: OBJ_JEWELLERY/AMU_CLARITYCOLOUR: LIGHTGREENBOOL: lifeMAGIC: 100
NAME: amulet of the Four WindsAPPEAR: jade amuletOBJ: OBJ_JEWELLERY/AMU_CLARITYCOLOUR: LIGHTGREENTILE: urand_four_windsBOOL: lifeMAGIC: 100