/* * This generator set makes the name/ac and various * other mundane stats about objects. * * This one is for Armor */ #if defined(macintosh) #include <types.h> #else #include <sys/types.h> #endif #include <ctype.h> #include <stdio.h> #include <string.h> #include <time.h> #include "merc.h" #include "interp.h" #include "magic.h" #include "recycle.h" #include "tables.h" OBJ_DATA * make_armor_cape (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_NECK_OVER; switch(range) { default: case 1: sprintf(name_set, "cloth cape"); sprintf(shor_set, "cloth cape"); sprintf(long_set, "a cloth cape lies on the ground here."); obj->value[0] = 1; obj->value[2] = 1; obj->value[3] = 1; obj->value[4] = 1; obj->weight = 10; obj->level = 1; break; case 2: sprintf(name_set, "leather cape"); sprintf(shor_set, "leather cape"); sprintf(long_set, "a leather cape lies on the ground here."); obj->value[0] = 2; obj->value[2] = 2; obj->value[3] = 2; obj->value[4] = 2; obj->weight = 20; obj->level = 5; break; case 3: sprintf(name_set, "Fubashi skin cape"); sprintf(shor_set, "fubashi-skin cape"); sprintf(long_set, "a fubashi-skin cape lies on the ground here."); obj->value[0] = 3; obj->value[2] = 3; obj->value[3] = 3; obj->value[4] = 3; obj->weight = 30; obj->level = 10; break; case 4: sprintf(name_set, "troll skin cape"); sprintf(shor_set, "troll-skin cape"); sprintf(long_set, "a troll-skin cape lies on the ground here."); obj->value[0] = 4; obj->value[2] = 4; obj->value[3] = 4; obj->value[4] = 4; obj->weight = 40; obj->level = 15; break; case 5: sprintf(name_set, "dragonscale cape"); sprintf(shor_set, "dragonscale cape"); sprintf(long_set, "a dragonscale cape lies on the ground here."); obj->value[0] = 5; obj->value[2] = 5; obj->value[3] = 5; obj->value[4] = 5; obj->weight = 50; obj->level = 20; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); return(obj); } OBJ_DATA * make_armor_gloves (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_HANDS; switch(range) { default: case 1: sprintf(name_set, "gloves"); sprintf(shor_set, "gloves"); sprintf(long_set, "a gloves lies on the ground here."); obj->level = 1; break; case 2: sprintf(name_set, "heavy gloves"); sprintf(shor_set, "heavy gloves"); sprintf(long_set, "a heavy gloves lies on the ground here."); obj->level = 10; break; case 3: sprintf(name_set, "chain gloves"); sprintf(shor_set, "chain gloves"); sprintf(long_set, "a chain gloves lies on the ground here."); obj->level = 20; break; case 4: sprintf(name_set, "light gauntlets"); sprintf(shor_set, "light gauntlets"); sprintf(long_set, "a light gauntlets lies on the ground here."); obj->level = 30; break; case 5: sprintf(name_set, "gauntlets"); sprintf(shor_set, "gauntlets"); sprintf(long_set, "a gauntlets lies on the ground here."); obj->level = 40; break; case 6: sprintf(name_set, "chain gloves"); sprintf(shor_set, "chain gloves"); sprintf(long_set, "a chain gloves lies on the ground here."); obj->level = 50; break; case 7: sprintf(name_set, "demonhide gloves"); sprintf(shor_set, "demonhide gloves"); sprintf(long_set, "a demonhide gloves lies on the ground here."); obj->level = 60; break; case 8: sprintf(name_set, "fubashi-skin gloves"); sprintf(shor_set, "fubashi-skin gloves"); sprintf(long_set, "a fubashi-skin gloves lies on the ground here."); obj->level = 70; break; case 9: sprintf(name_set, "battle gauntlets"); sprintf(shor_set, "battle gauntlets"); sprintf(long_set, "a battle gauntlets lies on the ground here."); obj->level = 80; break; case 10: sprintf(name_set, "war gauntlets"); sprintf(shor_set, "war gauntlets"); sprintf(long_set, "a war gauntlets lies on the ground here."); obj->level = 90; break; case 11: sprintf(name_set, "iron gauntlets"); sprintf(shor_set, "iron gauntlets"); sprintf(long_set, "a iron gauntlets lies on the ground here."); obj->level = 100; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); obj->value[0] = obj->level / 2; obj->value[2] = obj->level / 2; obj->value[3] = obj->level / 2; obj->value[4] = obj->level / 2; return(obj); } OBJ_DATA * make_armor_mantle (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_BODY_OVER; switch(range) { default: case 1: sprintf(name_set, "cloth mantle"); sprintf(shor_set, "cloth mantle"); sprintf(long_set, "a cloth mantle lies on the ground here."); obj->value[0] = 1; obj->value[2] = 1; obj->value[3] = 1; obj->value[4] = 1; obj->weight = 10; obj->level = 1; break; case 2: sprintf(name_set, "leather mantle"); sprintf(shor_set, "leather mantle"); sprintf(long_set, "a leather mantle lies on the ground here."); obj->value[0] = 2; obj->value[2] = 2; obj->value[3] = 2; obj->value[4] = 2; obj->weight = 20; obj->level = 5; break; case 3: sprintf(name_set, "Fubashi skin mantle"); sprintf(shor_set, "fubashi-skin mantle"); sprintf(long_set, "a fubashi-skin mantle lies on the ground here."); obj->value[0] = 3; obj->value[2] = 3; obj->value[3] = 3; obj->value[4] = 3; obj->weight = 30; obj->level = 10; break; case 4: sprintf(name_set, "troll skin mantle"); sprintf(shor_set, "troll-skin mantle"); sprintf(long_set, "a troll-skin mantle lies on the ground here."); obj->value[0] = 4; obj->value[2] = 4; obj->value[3] = 4; obj->value[4] = 4; obj->weight = 40; obj->level = 15; break; case 5: sprintf(name_set, "dragonscale mantle"); sprintf(shor_set, "dragonscale mantle"); sprintf(long_set, "a dragonscale mantle lies on the ground here."); obj->value[0] = 5; obj->value[2] = 5; obj->value[3] = 5; obj->value[4] = 5; obj->weight = 50; obj->level = 20; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); return(obj); } OBJ_DATA * make_armor_shirt (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_BODY_UNDER; switch(range) { default: case 1: sprintf(name_set, "cloth shirt"); sprintf(shor_set, "cloth shirt"); sprintf(long_set, "a cloth shirt lies on the ground here."); obj->value[0] = 1; obj->value[2] = 1; obj->value[3] = 1; obj->value[4] = 1; obj->weight = 10; obj->level = 1; break; case 2: sprintf(name_set, "leather shirt"); sprintf(shor_set, "leather shirt"); sprintf(long_set, "a leather shirt lies on the ground here."); obj->value[0] = 2; obj->value[2] = 2; obj->value[3] = 2; obj->value[4] = 2; obj->weight = 20; obj->level = 5; break; case 3: sprintf(name_set, "Fubashi skin shirt"); sprintf(shor_set, "fubashi-skin shirt"); sprintf(long_set, "a fubashi-skin shirt lies on the ground here."); obj->value[0] = 3; obj->value[2] = 3; obj->value[3] = 3; obj->value[4] = 3; obj->weight = 30; obj->level = 10; break; case 4: sprintf(name_set, "troll skin shirt"); sprintf(shor_set, "troll-skin shirt"); sprintf(long_set, "a troll-skin shirt lies on the ground here."); obj->value[0] = 4; obj->value[2] = 4; obj->value[3] = 4; obj->value[4] = 4; obj->weight = 40; obj->level = 15; break; case 5: sprintf(name_set, "dragonscale shirt"); sprintf(shor_set, "dragonscale shirt"); sprintf(long_set, "a dragonscale shirt lies on the ground here."); obj->value[0] = 5; obj->value[2] = 5; obj->value[3] = 5; obj->value[4] = 5; obj->weight = 50; obj->level = 20; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); return(obj); } OBJ_DATA * make_armor_boots (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_FEET; switch(range) { default: case 1: sprintf(name_set, "boots"); sprintf(shor_set, "boots"); sprintf(long_set, "a boots lies on the ground here."); obj->level = 1; break; case 2: sprintf(name_set, "heavt boots"); sprintf(shor_set, "heavt boots"); sprintf(long_set, "a heavt boots lies on the ground here."); obj->level = 10; break; case 3: sprintf(name_set, "chain boots"); sprintf(shor_set, "chain boots"); sprintf(long_set, "a chain boots lies on the ground here."); obj->level = 20; break; case 4: sprintf(name_set, "light plated boots"); sprintf(shor_set, "light plated boots"); sprintf(long_set, "a light plated boots lies on the ground here."); obj->level = 30; break; case 5: sprintf(name_set, "greaves"); sprintf(shor_set, "greaves"); sprintf(long_set, "a greaves lies on the ground here."); obj->level = 40; break; case 6: sprintf(name_set, "fubashi-skin boots"); sprintf(shor_set, "fubashi-skin boots"); sprintf(long_set, "a fubashi-skin boots lies on the ground here."); obj->level = 50; break; case 7: sprintf(name_set, "corru-skin boots"); sprintf(shor_set, "corru-skin boots"); sprintf(long_set, "a corru-skin boots lies on the ground here."); obj->level = 60; break; case 8: sprintf(name_set, "mesh boots"); sprintf(shor_set, "mesh boots"); sprintf(long_set, "a mesh boots lies on the ground here."); obj->level = 70; break; case 9: sprintf(name_set, "battle boots"); sprintf(shor_set, "battle boots"); sprintf(long_set, "a battle boots lies on the ground here."); obj->level = 80; break; case 10: sprintf(name_set, "war boots"); sprintf(shor_set, "war boots"); sprintf(long_set, "a war boots lies on the ground here."); obj->level = 90; break; case 11: sprintf(name_set, "steel-toed boots"); sprintf(shor_set, "steel-toed boots"); sprintf(long_set, "a steel-toed boots lies on the ground here."); obj->level = 100; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); obj->value[0] = obj->level / 2; obj->value[2] = obj->level / 2; obj->value[3] = obj->level / 2; obj->value[4] = obj->level / 2; obj->weight = obj->level / 2; return(obj); } OBJ_DATA * make_armor_leggings (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_LEGS; switch(range) { default: case 1: sprintf(name_set, "cloth leggings"); sprintf(shor_set, "cloth leggings"); sprintf(long_set, "a cloth leggings lies on the ground here."); obj->value[0] = 1; obj->value[2] = 1; obj->value[3] = 1; obj->value[4] = 1; obj->weight = 10; obj->level = 1; break; case 2: sprintf(name_set, "leather leggings"); sprintf(shor_set, "leather leggings"); sprintf(long_set, "a leather leggings lies on the ground here."); obj->value[0] = 2; obj->value[2] = 2; obj->value[3] = 2; obj->value[4] = 2; obj->weight = 20; obj->level = 5; break; case 3: sprintf(name_set, "Fubashi skin leggings"); sprintf(shor_set, "fubashi-skin leggings"); sprintf(long_set, "a fubashi-skin leggings lies on the ground here."); obj->value[0] = 3; obj->value[2] = 3; obj->value[3] = 3; obj->value[4] = 3; obj->weight = 30; obj->level = 10; break; case 4: sprintf(name_set, "troll skin leggings"); sprintf(shor_set, "troll-skin leggings"); sprintf(long_set, "a troll-skin leggings lies on the ground here."); obj->value[0] = 4; obj->value[2] = 4; obj->value[3] = 4; obj->value[4] = 4; obj->weight = 40; obj->level = 15; break; case 5: sprintf(name_set, "dragonscale leggings"); sprintf(shor_set, "dragonscale leggings"); sprintf(long_set, "a dragonscale leggings lies on the ground here."); obj->value[0] = 5; obj->value[2] = 5; obj->value[3] = 5; obj->value[4] = 5; obj->weight = 50; obj->level = 20; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); return(obj); } OBJ_DATA * make_armor_underwear (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_LEGS_UNDER; switch(range) { default: case 1: sprintf(name_set, "cloth underwear"); sprintf(shor_set, "cloth underwear"); sprintf(long_set, "a cloth underwear lies on the ground here."); obj->value[0] = 1; obj->value[2] = 1; obj->value[3] = 1; obj->value[4] = 1; obj->weight = 10; obj->level = 1; break; case 2: sprintf(name_set, "leather underwear"); sprintf(shor_set, "leather underwear"); sprintf(long_set, "a leather underwear lies on the ground here."); obj->value[0] = 2; obj->value[2] = 2; obj->value[3] = 2; obj->value[4] = 2; obj->weight = 20; obj->level = 5; break; case 3: sprintf(name_set, "Fubashi skin underwear"); sprintf(shor_set, "fubashi-skin underwear"); sprintf(long_set, "a fubashi-skin underwear lies on the ground here."); obj->value[0] = 3; obj->value[2] = 3; obj->value[3] = 3; obj->value[4] = 3; obj->weight = 30; obj->level = 10; break; case 4: sprintf(name_set, "troll skin underwear"); sprintf(shor_set, "troll-skin underwear"); sprintf(long_set, "a troll-skin underwear lies on the ground here."); obj->value[0] = 4; obj->value[2] = 4; obj->value[3] = 4; obj->value[4] = 4; obj->weight = 40; obj->level = 15; break; case 5: sprintf(name_set, "dragonscale underwear"); sprintf(shor_set, "dragonscale underwear"); sprintf(long_set, "a dragonscale underwear lies on the ground here."); obj->value[0] = 5; obj->value[2] = 5; obj->value[3] = 5; obj->value[4] = 5; obj->weight = 50; obj->level = 20; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); return(obj); } OBJ_DATA * make_armor_cloak (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_ABOUT; switch(range) { default: case 1: sprintf(name_set, "cloth cloak"); sprintf(shor_set, "cloth cloak"); sprintf(long_set, "a cloth cloak lies on the ground here."); obj->value[0] = 1; obj->value[2] = 1; obj->value[3] = 1; obj->value[4] = 1; obj->weight = 10; obj->level = 1; break; case 2: sprintf(name_set, "leather cloak"); sprintf(shor_set, "leather cloak"); sprintf(long_set, "a leather cloak lies on the ground here."); obj->value[0] = 2; obj->value[2] = 2; obj->value[3] = 2; obj->value[4] = 2; obj->weight = 20; obj->level = 5; break; case 3: sprintf(name_set, "Fubashi skin cloak"); sprintf(shor_set, "fubashi-skin cloak"); sprintf(long_set, "a fubashi-skin cloak lies on the ground here."); obj->value[0] = 3; obj->value[2] = 3; obj->value[3] = 3; obj->value[4] = 3; obj->weight = 30; obj->level = 10; break; case 4: sprintf(name_set, "troll skin cloak"); sprintf(shor_set, "troll-skin cloak"); sprintf(long_set, "a troll-skin cloak lies on the ground here."); obj->value[0] = 4; obj->value[2] = 4; obj->value[3] = 4; obj->value[4] = 4; obj->weight = 40; obj->level = 15; break; case 5: sprintf(name_set, "dragonscale cloak"); sprintf(shor_set, "dragonscale cloak"); sprintf(long_set, "a dragonscale cloak lies on the ground here."); obj->value[0] = 5; obj->value[2] = 5; obj->value[3] = 5; obj->value[4] = 5; obj->weight = 50; obj->level = 20; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); return(obj); } OBJ_DATA * make_armor_bracer (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_WRIST; switch(range) { default: case 1: sprintf(name_set, "cloth bracer"); sprintf(shor_set, "cloth bracer"); sprintf(long_set, "a cloth bracer lies on the ground here."); obj->value[0] = 1; obj->value[2] = 1; obj->value[3] = 1; obj->value[4] = 1; obj->weight = 10; obj->level = 1; break; case 2: sprintf(name_set, "leather bracer"); sprintf(shor_set, "leather bracer"); sprintf(long_set, "a leather bracer lies on the ground here."); obj->value[0] = 2; obj->value[2] = 2; obj->value[3] = 2; obj->value[4] = 2; obj->weight = 20; obj->level = 5; break; case 3: sprintf(name_set, "Fubashi skin bracer"); sprintf(shor_set, "fubashi-skin bracer"); sprintf(long_set, "a fubashi-skin bracer lies on the ground here."); obj->value[0] = 3; obj->value[2] = 3; obj->value[3] = 3; obj->value[4] = 3; obj->weight = 30; obj->level = 10; break; case 4: sprintf(name_set, "troll skin bracer"); sprintf(shor_set, "troll-skin bracer"); sprintf(long_set, "a troll-skin bracer lies on the ground here."); obj->value[0] = 4; obj->value[2] = 4; obj->value[3] = 4; obj->value[4] = 4; obj->weight = 40; obj->level = 15; break; case 5: sprintf(name_set, "dragonscale bracer"); sprintf(shor_set, "dragonscale bracer"); sprintf(long_set, "a dragonscale bracer lies on the ground here."); obj->value[0] = 5; obj->value[2] = 5; obj->value[3] = 5; obj->value[4] = 5; obj->weight = 50; obj->level = 20; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); return(obj); } OBJ_DATA * make_armor_belt (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_WAIST; switch(range) { default: case 1: sprintf(name_set, "sash"); sprintf(shor_set, "sash"); sprintf(long_set, "a sash lies on the ground here."); obj->level = 1; break; case 2: sprintf(name_set, "light belt"); sprintf(shor_set, "light belt"); sprintf(long_set, "a light belt lies on the ground here."); obj->level = 10; break; case 3: sprintf(name_set, "belt"); sprintf(shor_set, "belt"); sprintf(long_set, "a belt lies on the ground here."); obj->level = 20; break; case 4: sprintf(name_set, "heavy belt"); sprintf(shor_set, "heavy belt"); sprintf(long_set, "a heavy belt lies on the ground here."); obj->level = 30; break; case 5: sprintf(name_set, "plated belt"); sprintf(shor_set, "plated belt"); sprintf(long_set, "a plated belt lies on the ground here."); obj->level = 40; break; case 6: sprintf(name_set, "fubashi-skin sash"); sprintf(shor_set, "fubashi-skin sash"); sprintf(long_set, "a fubashi-skin sash lies on the ground here."); obj->level = 50; break; case 7: sprintf(name_set, "corru-skin belt"); sprintf(shor_set, "corru-skin belt"); sprintf(long_set, "a corru-skin belt lies on the ground here."); obj->level = 60; break; case 8: sprintf(name_set, "mesh belt"); sprintf(shor_set, "mesh belt"); sprintf(long_set, "a mesh belt lies on the ground here."); obj->level = 70; break; case 9: sprintf(name_set, "battle belt"); sprintf(shor_set, "battle belt"); sprintf(long_set, "a battle belt lies on the ground here."); obj->level = 80; break; case 10: sprintf(name_set, "war belt"); sprintf(shor_set, "war belt"); sprintf(long_set, "a war belt lies on the ground here."); obj->level = 90; break; case 11: sprintf(name_set, "steel belt"); sprintf(shor_set, "steel belt"); sprintf(long_set, "a steel belt lies on the ground here."); obj->level = 100; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); obj->value[0] = obj->level / 2; obj->value[2] = obj->level / 2; obj->value[3] = obj->level / 2; obj->value[4] = obj->level / 2; return(obj); } OBJ_DATA * make_armor_body (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_BODY; switch(range) { default: case 1: sprintf(name_set, "padded armor"); sprintf(shor_set, "padded armor"); sprintf(long_set, "a padded armor lies on the ground here."); obj->level = 1; break; case 2: sprintf(name_set, "leather armor"); sprintf(shor_set, "leather armor"); sprintf(long_set, "a leather armor lies on the ground here."); obj->level = 10; break; case 3: sprintf(name_set, "hard leather armor"); sprintf(shor_set, "hard leather armor"); sprintf(long_set, "a hard leather armor lies on the ground here."); obj->level = 20; break; case 4: sprintf(name_set, "studded leather"); sprintf(shor_set, "studded leather"); sprintf(long_set, "a studded leather lies on the ground here."); obj->level = 30; break; case 5: sprintf(name_set, "ring mail"); sprintf(shor_set, "ring mail"); sprintf(long_set, "a ring mail lies on the ground here."); obj->level = 40; break; case 6: sprintf(name_set, "scale mail"); sprintf(shor_set, "scale mail"); sprintf(long_set, "a scale mail lies on the ground here."); obj->level = 50; break; case 7: sprintf(name_set, "breast plate"); sprintf(shor_set, "breast plate"); sprintf(long_set, "a breast plate lies on the ground here."); obj->level = 60; break; case 8: sprintf(name_set, "chain mail"); sprintf(shor_set, "chain mail"); sprintf(long_set, "a chain mail lies on the ground here."); obj->level = 70; break; case 9: sprintf(name_set, "light plate"); sprintf(shor_set, "light plate"); sprintf(long_set, "a light plate lies on the ground here."); obj->level = 80; break; case 10: sprintf(name_set, "field plate"); sprintf(shor_set, "field plate"); sprintf(long_set, "a field plate lies on the ground here."); obj->level = 90; break; case 11: sprintf(name_set, "platemail"); sprintf(shor_set, "platemail"); sprintf(long_set, "a platemail lies on the ground here."); obj->level = 100; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); obj->value[0] = obj->level / 2; obj->value[2] = obj->level / 2; obj->value[3] = obj->level / 2; obj->value[4] = obj->level / 2; return(obj); } OBJ_DATA * make_armor_head (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_HEAD; switch(range) { default: case 1: sprintf(name_set, "cap"); sprintf(shor_set, "cap"); sprintf(long_set, "a cap lies on the ground here."); obj->level = 1; break; case 2: sprintf(name_set, "skull cap"); sprintf(shor_set, "skull cap"); sprintf(long_set, "a skull cap lies on the ground here."); obj->level = 10; break; case 3: sprintf(name_set, "helm"); sprintf(shor_set, "helm"); sprintf(long_set, "a helm lies on the ground here."); obj->level = 20; break; case 4: sprintf(name_set, "casque"); sprintf(shor_set, "casque"); sprintf(long_set, "a casque lies on the ground here."); obj->level = 30; break; case 5: sprintf(name_set, "full helm"); sprintf(shor_set, "full helm"); sprintf(long_set, "a full helm lies on the ground here."); obj->level = 40; break; case 6: sprintf(name_set, "great helm"); sprintf(shor_set, "great helm"); sprintf(long_set, "a great helm lies on the ground here."); obj->level = 50; break; case 7: sprintf(name_set, "mask"); sprintf(shor_set, "mask"); sprintf(long_set, "a mask lies on the ground here."); obj->level = 60; break; case 8: sprintf(name_set, "death mask"); sprintf(shor_set, "death mask"); sprintf(long_set, "a death mask lies on the ground here."); obj->level = 70; break; case 9: sprintf(name_set, "crown"); sprintf(shor_set, "crown"); sprintf(long_set, "a crown lies on the ground here."); obj->level = 80; break; case 10: sprintf(name_set, "bone helm"); sprintf(shor_set, "bone helm"); sprintf(long_set, "a bone helm lies on the ground here."); obj->level = 90; break; case 11: sprintf(name_set, "winged helm"); sprintf(shor_set, "winged helm"); sprintf(long_set, "a winged helm lies on the ground here."); obj->level = 100; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); obj->value[0] = obj->level / 2; obj->value[2] = obj->level / 2; obj->value[3] = obj->level / 2; obj->value[4] = obj->level / 2; obj->weight = obj->level / 2; return(obj); } OBJ_DATA * make_armor_shield (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_SHIELD; switch(range) { default: case 1: sprintf(name_set, "buckler"); sprintf(shor_set, "buckler"); sprintf(long_set, "a buckler lies on the ground here."); obj->level = 1; break; case 2: sprintf(name_set, "small shield"); sprintf(shor_set, "small shield"); sprintf(long_set, "a small shield lies on the ground here."); obj->level = 10; break; case 3: sprintf(name_set, "round shield"); sprintf(shor_set, "round shield"); sprintf(long_set, "a round shield lies on the ground here."); obj->level = 20; break; case 4: sprintf(name_set, "large shield"); sprintf(shor_set, "large shield"); sprintf(long_set, "a large shield lies on the ground here."); obj->level = 30; break; case 5: sprintf(name_set, "kite shield"); sprintf(shor_set, "kite shield"); sprintf(long_set, "a kite shield lies on the ground here."); obj->level = 40; break; case 6: sprintf(name_set, "dragon shield"); sprintf(shor_set, "dragon shield"); sprintf(long_set, "a dragon shield lies on the ground here."); obj->level = 50; break; case 7: sprintf(name_set, "spiked shield"); sprintf(shor_set, "spiked shield"); sprintf(long_set, "a spiked shield lies on the ground here."); obj->level = 60; break; case 8: sprintf(name_set, "tower shield"); sprintf(shor_set, "tower shield"); sprintf(long_set, "a tower shield lies on the ground here."); obj->level = 70; break; case 9: sprintf(name_set, "bone shield"); sprintf(shor_set, "bone shield"); sprintf(long_set, "a bone shield lies on the ground here."); obj->level = 80; break; case 10: sprintf(name_set, "gothic shield"); sprintf(shor_set, "gothic shield"); sprintf(long_set, "a gothic shield lies on the ground here."); obj->level = 90; break; case 11: sprintf(name_set, "grim shield"); sprintf(shor_set, "grim shield"); sprintf(long_set, "a grim shield lies on the ground here."); obj->level = 100; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); obj->value[0] = obj->level / 2; obj->value[2] = obj->level / 2; obj->value[3] = obj->level / 2; obj->value[4] = obj->level / 2; obj->weight = obj->level / 2; return(obj); } OBJ_DATA * make_armor_float (OBJ_DATA * obj, int level) { int range; char name_set[MSL]; char shor_set[MSL]; char long_set[MSL]; range = number_range(1, (level / 10)); obj->wear_flags += ITEM_WEAR_FLOAT; switch(range) { default: case 1: sprintf(name_set, "green ioun stone"); sprintf(shor_set, "{Ggreen{x ioun stone"); sprintf(long_set, "a green ioun stone lies on the ground here."); obj->value[0] = 1; obj->value[2] = 1; obj->value[3] = 1; obj->value[4] = 1; obj->weight = 10; obj->level = 1; break; case 2: sprintf(name_set, "blue ioun stone"); sprintf(shor_set, "{bblue{x ioun stone"); sprintf(long_set, "a blue ioun stone lies on the ground here."); obj->value[0] = 2; obj->value[2] = 2; obj->value[3] = 2; obj->value[4] = 2; obj->weight = 20; obj->level = 5; break; case 3: sprintf(name_set, "red ioun stone"); sprintf(shor_set, "{rred{x ioun stone"); sprintf(long_set, "a red ioun stone lies on the ground here."); obj->value[0] = 3; obj->value[2] = 3; obj->value[3] = 3; obj->value[4] = 3; obj->weight = 30; obj->level = 10; break; case 4: sprintf(name_set, "white ioun stone"); sprintf(shor_set, "{wwhite{x ioun stone"); sprintf(long_set, "a white ioun stone lies on the ground here."); obj->value[0] = 4; obj->value[2] = 4; obj->value[3] = 4; obj->value[4] = 4; obj->weight = 40; obj->level = 15; break; case 5: sprintf(name_set, "black ioun stone"); sprintf(shor_set, "{Dblack{x ioun stone"); sprintf(long_set, "a black ioun stone lies on the ground here."); obj->value[0] = 5; obj->value[2] = 5; obj->value[3] = 5; obj->value[4] = 5; obj->weight = 50; obj->level = 20; break; } obj->cost = number_range(level * 10, level * 1000); obj->name = str_dup (name_set); obj->short_descr = str_dup (shor_set); obj->description = str_dup (long_set); return(obj); }