void p_movefunction(int movef) { /* loc functs above traps should be activated whether levitating or not */ drawvision(Player.x,Player.y); sign_print(Player.x,Player.y,false); if (Player.status[SHADOWFORM]) switch(movef) { /* player in shadow form is unable to do most things */ case L_CHAOS: l_chaos(); break; case L_ABYSS: l_abyss(); break; case L_ARENA_EXIT: l_arena_exit(); break; case L_ENTER_COURT: l_enter_court(); break; case L_ESCALATOR: l_escalator(); break; case L_COLLEGE: l_college(); break; case L_SORCERORS: l_sorcerors(); break; case L_ALTAR: l_altar(); break; case L_TACTICAL_EXIT: l_tactical_exit(); break; case L_HOUSE_EXIT: l_house_exit(); break; case L_HOUSE: l_house(); break; case L_HOVEL: l_hovel(); break; case L_MANSION: l_mansion(); break; case L_COUNTRYSIDE: l_countryside(); break; case L_ORACLE: l_oracle(); break; case L_TEMPLE_WARNING: l_temple_warning(); break; case L_ENTER_CIRCLE: l_enter_circle(); break; case L_CIRCLE_LIBRARY: l_circle_library(); break; case L_TOME1: l_tome1(); break; case L_TOME2: l_tome2(); break; case L_ADEPT: l_adept(); break; case L_VOICE1: l_voice1(); break; case L_VOICE2: l_voice2(); break; case L_VOICE3: l_voice3(); break; case L_VOID: l_void(); break; case L_FIRE_STATION: l_fire_station(); break; case L_EARTH_STATION: l_earth_station(); break; case L_WATER_STATION: l_water_station(); break; case L_AIR_STATION: l_air_station(); break; case L_VOID_STATION: l_void_station(); break; } else if ((! Player.status[LEVITATING]) || State.getMounted() || (Cmd == '@') || /* @ command activates all effects under player */ (movef < LEVITATION_AVOIDANCE)) { if (movef != L_NO_OP) { State.setFastMove(false); dataprint(); } switch(movef) { /* miscellaneous */ case L_NO_OP: l_no_op(); break; case L_HEDGE: l_hedge(); break; case L_WATER: l_water(); break; case L_LIFT: l_lift(); break; case L_LAVA: l_lava(); break; case L_FIRE: l_fire(); break; case L_WHIRLWIND: l_whirlwind(); break; case L_RUBBLE: l_rubble(); break; case L_MAGIC_POOL: l_magic_pool(); break; case L_CHAOS: l_chaos(); break; case L_ABYSS: l_abyss(); break; case L_PORTCULLIS_TRAP: l_portcullis_trap(); break; case L_RAISE_PORTCULLIS: l_raise_portcullis(); break; case L_DROP_EVERY_PORTCULLIS: l_drop_every_portcullis(); break; case L_ARENA_EXIT: l_arena_exit(); break; case L_TRIFID: l_trifid(); break; case L_ENTER_COURT: l_enter_court(); break; case L_ESCALATOR: l_escalator(); break; case L_THRONE: l_throne(); break; case L_TRAP_DART: l_trap_dart(); break; case L_TRAP_SIREN: l_trap_siren(); break; case L_TRAP_PIT: l_trap_pit(); break; case L_TRAP_DOOR: l_trap_door(); break; case L_TRAP_SNARE: l_trap_snare(); break; case L_TRAP_BLADE: l_trap_blade(); break; case L_TRAP_FIRE: l_trap_fire(); break; case L_TRAP_TELEPORT: l_trap_teleport(); break; case L_TRAP_DISINTEGRATE: l_trap_disintegrate(); break; case L_TRAP_SLEEP_GAS: l_trap_sleepgas(); break; case L_TRAP_MANADRAIN: l_trap_manadrain(); break; case L_TRAP_ACID: l_trap_acid(); break; case L_TRAP_ABYSS: l_trap_abyss(); break; /*door functions */ case L_BANK: l_bank(); break; case L_ARMORER: l_armorer(); break; case L_CLUB: l_club(); break; case L_GYM: l_gym(); break; case L_BROTHEL: l_brothel(); break; case L_THIEVES_GUILD: l_thieves_guild(); break; case L_COLLEGE: l_college(); break; case L_HEALER: l_healer(); break; case L_STATUE_WAKE: l_statue_wake(); break; case L_CASINO: l_casino(); break; case L_COMMANDANT: l_commandant(); break; case L_DINER: l_diner(); break; case L_CRAP: l_crap(); break; case L_TAVERN: l_tavern(); break; case L_MERC_GUILD: l_merc_guild(); break; case L_MONASTERY: l_monastery(); break; case L_ALCHEMIST: l_alchemist(); break; case L_SORCERORS: l_sorcerors(); break; case L_CASTLE: l_castle(); break; case L_ARENA: l_arena(); break; case L_VAULT: l_vault(); break; case L_DPW: l_dpw(); break; case L_LIBRARY: l_library(); break; case L_PAWN_SHOP: l_pawn_shop(); break; case L_CONDO: l_condo(); break; case L_TOURIST: l_tourist(); break; case L_ALTAR: l_altar(); break; case L_TACTICAL_EXIT: l_tactical_exit(); break; case L_HOUSE_EXIT: l_house_exit(); break; case L_SAFE: l_safe(); break; case L_HOUSE: l_house(); break; case L_HOVEL: l_hovel(); break; case L_MANSION: l_mansion(); break; case L_COUNTRYSIDE: l_countryside(); break; case L_ORACLE: l_oracle(); break; case L_ORDER: l_order(); break; case L_CARTOGRAPHER: l_cartographer(); break; case L_TEMPLE_WARNING: l_temple_warning(); break; case L_ENTER_CIRCLE: l_enter_circle(); break; case L_CIRCLE_LIBRARY: l_circle_library(); break; case L_TOME1: l_tome1(); break; case L_TOME2: l_tome2(); break; case L_CHARITY: l_charity(); break; case L_CHAOSTONE: l_chaostone(); break; case L_VOIDSTONE: l_voidstone(); break; case L_BALANCESTONE: l_balancestone(); break; case L_LAWSTONE: l_lawstone(); break; case L_SACRIFICESTONE: l_sacrificestone(); break; case L_MINDSTONE: l_mindstone(); break; /* challenge functions */ case L_ADEPT: l_adept(); break; case L_VOICE1: l_voice1(); break; case L_VOICE2: l_voice2(); break; case L_VOICE3: l_voice3(); break; case L_VOID: l_void(); break; case L_FIRE_STATION: l_fire_station(); break; case L_EARTH_STATION: l_earth_station(); break; case L_WATER_STATION: l_water_station(); break; case L_AIR_STATION: l_air_station(); break; case L_VOID_STATION: l_void_station(); break; } } }
void send_to_jail(void) { if (Player.rank[ORDER] > 0) { print1("A member of the Order of Paladins sent to jail!"); print2("It cannot be!"); morewait(); print1("You are immediately expelled permanently from the Order!"); print2("Your name is expunged from the records...."); Player.rank[ORDER] = -1; } else if (gamestatusp(DESTROYED_ORDER)) print1("The destruction of the Order of Paladins has negated the law!"); else if ((Current_Environment != E_CITY) && (Last_Environment != E_CITY)) print1("Fortunately, there is no jail around here, so you are freed!"); else { pacify_guards(); if (((Current_Environment == E_HOUSE) || (Current_Environment == E_MANSION) || (Current_Environment == E_HOVEL)) && (Last_Environment == E_CITY)) { setgamestatus(SUPPRESS_PRINTING); change_environment(E_CITY); resetgamestatus(SUPPRESS_PRINTING); } if (Current_Environment == E_CITY) { if (gamestatusp(UNDEAD_GUARDS)) { print1("You are taken to a weirdly deserted chamber where an undead"); print2("Magistrate presides over a court of ghosts and haunts."); morewait(); print1("'Mr. Foreman, what is the verdict?'"); print2("'Guilty as charged, your lordship.'"); morewait(); clearmsg(); print1("'Guilty..."); morewait(); nprint1("Guilty..."); morewait(); nprint1("Guilty..."); morewait(); nprint1("Guilty...'"); clearmsg(); print1("The members of the court close in around, fingers pointing."); print2("You feel insubstantial hands closing around your throat...."); print3("You feel your life draining away!"); while(Player.level > 0) { Player.level--; Player.xp /= 2; Player.hp /= 2; dataprint(); } Player.maxhp = Player.maxcon; morewait(); print1("You are finally released, a husk of your former self...."); Player.x = 58; Player.y = 40; screencheck(Player.x,Player.y); } /* Hmm... The sorcerors ought to be able to get you free, too, * although of course they should have their *own* price. */ else if (Player.alignment + random_range(200) < 0) { print1("Luckily for you, a smooth-tongued advocate from the"); print2("Rampart Chaotic Liberties Union gets you off!"); Player.x = 58; Player.y = 40; screencheck(Player.x,Player.y); } else switch(Imprisonment++) { case 0: print1("The Magistrate sternly reprimands you."); print2("As a first-time offender, you are given probation."); Player.y = 58; Player.x = 40; screencheck(Player.x,Player.y); break; case 1: print1("The Magistrate expresses shame for your conduct."); print2("You are thrown in jail!"); morewait(); repair_jail(); Player.y = 54; Player.x = 37 + (2*random_range(4)); screencheck(Player.x,Player.y); l_portcullis_trap(); break; default: print1("The Magistrate renders summary judgement."); print2("You are sentenced to prison!"); morewait(); print1("The guards recognize you as a 'three-time-loser'"); print2("...and beat you up a little to teach you a lesson."); p_damage(random_range(Imprisonment * 10), UNSTOPPABLE, "police brutality"); morewait(); repair_jail(); Player.y = 54; Player.x = 37 + (2*random_range(4)); screencheck(Player.x,Player.y); l_portcullis_trap(); } } } }