void spell_summon_mount(BYTE level, struct char_data *ch, char *arg, int type, struct char_data *victim, struct obj_data *obj) { struct affected_type af; int i; int cantload; int rnum; char buffer[40]; /* We summon a mount of a type relative to the level of the ranger casting it. Aaaaaand the lucky mobs are: level 27 One of... huge spider Mob # large stirge Mob # level 28 One of... elephant Mob # giant ant Mob # unicorn Mob # level 29 One of... green dragon baby Mob # baby brontosaur Mob # giant scorpion Mob # level 30,31 One of... flying dragon golden Mob # roc Mob # lammasu Mob # horse Mob # pegasus Mob # level 32+ One of... griffon Mob # giant eagle Mob # small allosaur Mob # The higher levels can summon any of the mobs on levels lower than their own. If no mob is specified, a random mob appropriate to the ranger's level will be loaded. The mob gets a saving throw vs. charm. If it succeeds, it becomes agressive and hates the caster. If it fails, it becomes charmed. -Sedna */ if(!(arg)) { If (level == 27) { rnum = number(1, 2) + ??; mob = read_mobile(rnum, VIRTUAL); } else if (level == 28) { rnum = number(1,5) + ??; mob = read_mobile(rnum, VIRTUAL); } else if (level == 29) { rnum = number(1,8) + ??; mob = read_mobile(rnum, VIRTUAL); } else if (level <= 31) { rnum = number(1,13) + ??; mob = read_mobile(rnum, VIRTUAL); } else { rnum = number(1,15) + ??; mob = read_mobile(rnum, VIRTUAL); } } else { cantload=0; rnum = 0; for(i=??;i<(??+15);i++) if(isname(arg,mob_index[i].name)) { rnum=i; break; if(rnum) {