1 // Property of Alientrap
2 // custom/creategame.qm
4 // uses target and _target
5 // requires neighbors: Picture, Name, Description
6 void() Nex_Automation_UpdateMap_Update =
11 if( self._target.name != "Data::CreateGame::Map" )
12 self._target = Menu_GetItem( "Data::CreateGame::Map" );
14 lTarget = self._target;
16 lItem = Menu_GetItem( "Picture" );
17 String_EntitySet( lItem, picture, lTarget._link.picture );
19 lItem = Menu_GetItem( "Name" );
20 String_EntitySet( lItem, text, lTarget._link.normal );
22 lItem = Menu_GetItem( "Description" );
23 String_EntitySet( lItem, text, lTarget._link.text );
26 void() Nex_Automation_UpdateMap_Destroy =
28 String_EntityFree( self, target );
31 void() Nex_Automation_UpdateMap =
33 String_EntityZone( self, target );
35 self._update = Nex_Automation_UpdateMap_Update;
36 self._destroy = Nex_Automation_UpdateMap_Destroy;
39 // more concrete functions
40 void() Nex_Action_Map_Next =
44 lItem = Menu_GetItem( "Data::CreateGame::Map" );
45 lItem._realValue = lItem._realValue + 1;
46 Raise_DataEvent( lItem, ITEM_DATA_SEND );
49 void() Nex_Action_Map_Prev =
53 lItem = Menu_GetItem( "Data::CreateGame::Map" );
54 lItem._realValue = lItem._realValue - 1;
55 Raise_DataEvent( lItem, ITEM_DATA_SEND );
58 // TODO: Make MaxPlayers real Data items (no container with correct set behavior)
59 void() Nex_Action_Map_Start =
62 local float lNumBots, lSkill;
63 // we need to set the following var
64 lItem = Menu_GetItem( "::Data::CreateGame::NumBots" );
65 lNumBots = stof( lItem.value );
66 lItem = Menu_GetItem( "::Data::CreateGame::BotSkill" );
67 lSkill = stof( lItem.value );
69 cvar_set( "saved1", "1" );
70 cvar_set( "scratch1", ftos( pow( 2, lNumBots ) - 1 ) );
71 cvar_set( "scratch2", ftos( lSkill * (pow(4, min(lNumBots, 8)) - 1) / 3) );
72 cvar_set( "scratch3", ftos( lSkill * (pow(4, min(lNumBots - 8, 8)) - 1) / 3) );
74 lItem = Menu_GetItem( "::Data::CreateGame::MaxPlayers" );
75 cmd( "maxplayers \"" );
79 lItem = Menu_GetItem( "::Data::CreateGame::Map" );
81 cmd( lItem._link.link );
84 // force the menu to hide