Skip to content

Commit 318b7b6

Browse files
committed
Add debug menu entry to spawn npc in player faction
1 parent 3aa1b84 commit 318b7b6

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/debug_menu.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ std::string enum_to_string<debug_menu::debug_menu_index>( debug_menu::debug_menu
196196
case debug_menu::debug_menu_index::SHORT_TELEPORT: return "SHORT_TELEPORT";
197197
case debug_menu::debug_menu_index::LONG_TELEPORT: return "LONG_TELEPORT";
198198
case debug_menu::debug_menu_index::SPAWN_NPC: return "SPAWN_NPC";
199+
case debug_menu::debug_menu_index::SPAWN_NPC_FOLLOWER: return "SPAWN_NPC_FOLLOWER";
199200
case debug_menu::debug_menu_index::SPAWN_NAMED_NPC: return "SPAWN_NAMED_NPC";
200201
case debug_menu::debug_menu_index::SPAWN_OM_NPC: return "SPAWN_OM_NPC";
201202
case debug_menu::debug_menu_index::SPAWN_MON: return "SPAWN_MON";
@@ -1040,6 +1041,7 @@ static int spawning_uilist()
10401041
{ uilist_entry( debug_menu_index::WISH, true, 'w', _( "Spawn an item" ) ) },
10411042
{ uilist_entry( debug_menu_index::SPAWN_ITEM_GROUP, true, 'W', _( "Spawn an item group" ) ) },
10421043
{ uilist_entry( debug_menu_index::SPAWN_NPC, true, 'n', _( "Spawn NPC" ) ) },
1044+
{ uilist_entry( debug_menu_index::SPAWN_NPC_FOLLOWER, true, 'f', _( "Spawn NPC follower" ) ) },
10431045
{ uilist_entry( debug_menu_index::SPAWN_NAMED_NPC, true, 'p', _( "Spawn named NPC" ) ) },
10441046
{ uilist_entry( debug_menu_index::SPAWN_OM_NPC, true, 'N', _( "Spawn random NPC on overmap" ) ) },
10451047
{ uilist_entry( debug_menu_index::SPAWN_MON, true, 'm', _( "Spawn monster" ) ) },
@@ -3731,6 +3733,23 @@ static void spawn_npc()
37313733
g->load_npcs();
37323734
}
37333735

3736+
static void spawn_npc_follower()
3737+
{
3738+
avatar &player_character = get_avatar();
3739+
shared_ptr_fast<npc> temp = make_shared_fast<npc>();
3740+
temp->normalize();
3741+
temp->randomize();
3742+
temp->spawn_at_precise( player_character.pos_abs() + point( -4, -4 ) );
3743+
overmap_buffer.insert_npc( temp );
3744+
temp->form_opinion( player_character );
3745+
temp->set_attitude( NPCATT_FOLLOW );
3746+
temp->set_fac( faction_your_followers );
3747+
temp->mission = NPC_MISSION_NULL;
3748+
temp->add_new_mission( mission::reserve_random( ORIGIN_ANY_NPC, temp->pos_abs_omt(),
3749+
temp->getID() ) );
3750+
g->load_npcs();
3751+
}
3752+
37343753
static void spawn_named_npc()
37353754
{
37363755
uilist npc_menu;
@@ -4099,6 +4118,10 @@ void debug()
40994118
spawn_npc();
41004119
break;
41014120

4121+
case debug_menu_index::SPAWN_NPC_FOLLOWER:
4122+
spawn_npc_follower();
4123+
break;
4124+
41024125
case debug_menu_index::SPAWN_NAMED_NPC:
41034126
spawn_named_npc();
41044127
break;

src/debug_menu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ enum class debug_menu_index : int {
2424
SHORT_TELEPORT,
2525
LONG_TELEPORT,
2626
SPAWN_NPC,
27+
SPAWN_NPC_FOLLOWER,
2728
SPAWN_NAMED_NPC,
2829
SPAWN_OM_NPC,
2930
SPAWN_MON,

0 commit comments

Comments
 (0)