@@ -767,6 +767,7 @@ TbBool packets_process_cheats(
767767
768768TbBool process_players_global_cheats_packet_action (PlayerNumber plyr_idx , struct Packet * pckt )
769769{
770+ struct PlayerInfo * player ;
770771 switch (pckt -> action )
771772 {
772773 case PckA_CheatEnter :
@@ -783,7 +784,7 @@ TbBool process_players_global_cheats_packet_action(PlayerNumber plyr_idx, struct
783784 return false;
784785 case PckA_CheatRevealMap :
785786 {
786- struct PlayerInfo * player = get_player (plyr_idx );
787+ player = get_player (plyr_idx );
787788 reveal_whole_map (player );
788789 return false;
789790 }
@@ -802,7 +803,7 @@ TbBool process_players_global_cheats_packet_action(PlayerNumber plyr_idx, struct
802803 return false;
803804 case PckA_CheatSwitchTerrain :
804805 {
805- struct PlayerInfo * player = get_player (plyr_idx );
806+ player = get_player (plyr_idx );
806807 player -> cheatselection .chosen_terrain_kind = pckt -> actn_par1 ;
807808 if (slab_kind_has_no_ownership (player -> cheatselection .chosen_terrain_kind ))
808809 {
@@ -813,26 +814,26 @@ TbBool process_players_global_cheats_packet_action(PlayerNumber plyr_idx, struct
813814 }
814815 case PckA_CheatSwitchPlayer :
815816 {
816- struct PlayerInfo * player = get_player (plyr_idx );
817+ player = get_player (plyr_idx );
817818 clear_messages_from_player (MsgType_Player , player -> cheatselection .chosen_player );
818819 player -> cheatselection .chosen_player = pckt -> actn_par1 ;
819820 return false;
820821 }
821822 case PckA_CheatSwitchCreature :
822823 {
823- struct PlayerInfo * player = get_player (plyr_idx );
824+ player = get_player (plyr_idx );
824825 player -> cheatselection .chosen_creature_kind = pckt -> actn_par1 ;
825826 return false;
826827 }
827828 case PckA_CheatSwitchHero :
828829 {
829- struct PlayerInfo * player = get_player (plyr_idx );
830+ player = get_player (plyr_idx );
830831 player -> cheatselection .chosen_hero_kind = pckt -> actn_par1 ;
831832 return false;
832833 }
833834 case PckA_CheatSwitchExperience :
834835 {
835- struct PlayerInfo * player = get_player (plyr_idx );
836+ player = get_player (plyr_idx );
836837 player -> cheatselection .chosen_experience_level = pckt -> actn_par1 ;
837838 return false;
838839 }
@@ -866,6 +867,69 @@ TbBool process_players_global_cheats_packet_action(PlayerNumber plyr_idx, struct
866867 update_trap_tab_to_config ();
867868 return false;
868869 }
870+ case PckA_CheatWinLevel :
871+ {
872+ player = get_player (plyr_idx );
873+ set_player_as_won_level (player );
874+ return false;
875+ }
876+ case PckA_CheatLoseLevel :
877+ {
878+ player = get_player (plyr_idx );
879+ set_player_as_lost_level (player );
880+ return false;
881+ }
882+ case PckA_CheatLevelUp :
883+ {
884+ player = get_player (plyr_idx );
885+ struct Thing * thing = thing_get (player -> controlled_thing_idx );
886+ creature_increase_level (thing );
887+ return false;
888+ }
889+ case PckA_CheatLevelDown :
890+ {
891+ player = get_player (plyr_idx );
892+ struct Thing * thing = thing_get (player -> controlled_thing_idx );
893+ struct CreatureControl * cctrl = creature_control_get_from_thing (thing );
894+ if (!creature_control_invalid (cctrl ))
895+ {
896+ set_creature_level (thing , cctrl -> exp_level - 1 );
897+ }
898+ return false;
899+ }
900+ case PckA_CheatApplySpell :
901+ {
902+ player = get_player (plyr_idx );
903+ struct Thing * thing = thing_get (player -> controlled_thing_idx );
904+ struct SpellConfig * spconf = get_spell_config (pckt -> actn_par1 );
905+ SoundSmplTblID smptbl_idx ;
906+ if (spconf -> caster_affected )
907+ {
908+ if (spconf -> caster_affect_sound > 0 )
909+ {
910+ smptbl_idx = spconf -> caster_affect_sound + SOUND_RANDOM (spconf -> caster_sounds_count );
911+ }
912+ else
913+ {
914+ smptbl_idx = 0 ;
915+ }
916+ }
917+ else
918+ {
919+ struct PowerConfigStats * powerst = get_power_model_stats (spconf -> linked_power );
920+ smptbl_idx = powerst -> select_sound_idx ;
921+ }
922+ thing_play_sample (thing , smptbl_idx , NORMAL_PITCH , 0 , 3 , 0 , 4 , FULL_LOUDNESS );
923+ apply_spell_effect_to_thing (thing , pckt -> actn_par1 , SPELL_MAX_LEVEL , plyr_idx );
924+ return false;
925+ }
926+ case PckA_CheatKillCreature :
927+ {
928+ player = get_player (plyr_idx );
929+ struct Thing * thing = thing_get (player -> controlled_thing_idx );
930+ kill_creature (thing , INVALID_THING , -1 , CrDed_NoUnconscious );
931+ return false;
932+ }
869933 default :
870934 return false;
871935 }
0 commit comments