]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add a (very) basic temporary turret spawning GUI for tower defense
authorMario <mario.mario@y7mail.com>
Thu, 7 Mar 2013 17:38:52 +0000 (04:38 +1100)
committerMario <mario.mario@y7mail.com>
Thu, 7 Mar 2013 17:38:52 +0000 (04:38 +1100)
commands.cfg
defaultXonotic.cfg
qcsrc/menu/classes.c
qcsrc/menu/xonotic/dialog_towerdefense.c [new file with mode: 0644]
qcsrc/menu/xonotic/mainwindow.c

index 039fc6dd434d12c376e962b244be4768c3af47ba..a01ffc9c69084dae30932315f090359fc954d1c2 100644 (file)
@@ -104,6 +104,7 @@ alias menu_showhudexit "menu_cmd directmenu HUDExit"
 alias menu_showhudoptions "menu_cmd directpanelhudmenu ${* ?}"
 alias menu_showsandboxtools "menu_cmd directmenu SandboxTools"
 alias menu_showquitdialog "menu_cmd directmenu Quit"
+alias menu_showtdtools "menu_cmd directmenu TowerDefense"
 
 // command executed before loading a map by the menu
 // makes sure maxplayers is at least minplayers or bot_number + 1
index 23329b718f39a70645f0bedcf6354ec1211d21ec..9debede48d8179151b44a6f4cd776ca0bd8227b4 100644 (file)
@@ -442,6 +442,8 @@ seta menu_monsters_edit_skin 0
 seta menu_monsters_edit_color ""
 seta menu_monsters_edit_movetarget 1
 
+seta menu_td_edit_spawn ""
+
 set g_playerclip_collisions 1 "0 = disable collision testing against playerclips, might be useful on some defrag maps"
 set g_botclip_collisions 1 "0 = disable collision testing against botclips, might be useful on some defrag maps"
 
index 4e563e950eea153354e3c1c6c2bb600012ebabc6..4a50f1db886d83af6eed627993dc4c9d580e1f9b 100644 (file)
@@ -38,6 +38,7 @@
 #include "xonotic/dialog_settings_misc.c"
 #include "xonotic/dialog_multiplayer.c"
 #include "xonotic/dialog_multiplayer_playersetup.c"
+#include "xonotic/dialog_towerdefense.c"
 #include "xonotic/tabcontroller.c"
 #include "xonotic/textlabel.c"
 #include "xonotic/slider.c"
diff --git a/qcsrc/menu/xonotic/dialog_towerdefense.c b/qcsrc/menu/xonotic/dialog_towerdefense.c
new file mode 100644 (file)
index 0000000..fcf5208
--- /dev/null
@@ -0,0 +1,39 @@
+#ifdef INTERFACE
+CLASS(XonoticTowerDefenseDialog) EXTENDS(XonoticRootDialog)
+       METHOD(XonoticTowerDefenseDialog, fill, void(entity)) // to be overridden by user to fill the dialog with controls
+       ATTRIB(XonoticTowerDefenseDialog, title, string, _("Tower Defense Control Panel"))
+       ATTRIB(XonoticTowerDefenseDialog, color, vector, SKINCOLOR_DIALOG_SANDBOXTOOLS)
+       ATTRIB(XonoticTowerDefenseDialog, intendedWidth, float, 0.8)
+       ATTRIB(XonoticTowerDefenseDialog, rows, float, 4)
+       ATTRIB(XonoticTowerDefenseDialog, columns, float, 2)
+       ATTRIB(XonoticTowerDefenseDialog, name, string, "TowerDefense")
+ENDCLASS(XonoticTowerDefenseDialog)
+#endif
+
+#ifdef IMPLEMENTATION
+void XonoticTowerDefenseDialog_fill(entity me)
+{
+       entity e;
+
+       me.TR(me);
+               me.TD(me, 1, 0.5, e = makeXonoticTextLabel(0, _("Turret:")));
+       me.TR(me);
+               me.TD(me, 1, 0.2, e = makeXonoticRadioButton(2, "menu_td_edit_spawn", "plasma", _("Plasma")));
+               me.TD(me, 1, 0.2, e = makeXonoticRadioButton(2, "menu_td_edit_spawn", "mlrs", _("MLRS")));
+               me.TD(me, 1, 0.2, e = makeXonoticRadioButton(2, "menu_td_edit_spawn", "flac", _("FLAC")));
+               me.TD(me, 1, 0.2, e = makeXonoticRadioButton(2, "menu_td_edit_spawn", "barricade", _("Barricade")));
+               me.TD(me, 1, 0.2, e = makeXonoticRadioButton(2, "menu_td_edit_spawn", "walker", _("Walker")));
+               me.TR(me);
+               me.TDempty(me, 0.5);
+               me.TD(me, 1, 0.5, e = makeXonoticCommandButton(_("Spawn"), '0 0 0', "spawnturret $menu_td_edit_spawn", 0));
+               me.TD(me, 1, 0.5, e = makeXonoticCommandButton(_("Remove"), '0 0 0', "rmturret", 0));
+       me.TR(me);
+
+       me.gotoRC(me, me.rows - 1, 0);
+               me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
+                       e.onClick = Dialog_Close;
+                       e.onClickEntity = me;
+}
+#endif
+
+/* Click. The c-word is here so you can grep for it :-) */
index 120d80213c3d7facb79ff1e90d468162b523263d..32c1034c830e87cf1c34e84909552f192fe41fff 100644 (file)
@@ -193,6 +193,10 @@ void MainWindow_configureMainWindow(entity me)
        i.configureDialog(i);
        me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z * SKINALPHA_DIALOG_SANDBOXTOOLS);
        
+       i = spawnXonoticTowerDefenseDialog();
+       i.configureDialog(i);
+       me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z * SKINALPHA_DIALOG_SANDBOXTOOLS);
+       
        
        // miscellaneous dialogs
        i = spawnXonoticTeamSelectDialog();