-#ifdef INTERFACE
-CLASS(MainWindow) EXTENDS(ModalController)
- METHOD(MainWindow, configureMainWindow, void(entity))
- METHOD(MainWindow, draw, void(entity))
- ATTRIB(MainWindow, firstRunDialog, entity, NULL)
- ATTRIB(MainWindow, advancedDialog, entity, NULL)
- ATTRIB(MainWindow, mutatorsDialog, entity, NULL)
- ATTRIB(MainWindow, mapInfoDialog, entity, NULL)
- ATTRIB(MainWindow, userbindEditDialog, entity, NULL)
- ATTRIB(MainWindow, winnerDialog, entity, NULL)
- ATTRIB(MainWindow, serverInfoDialog, entity, NULL)
- ATTRIB(MainWindow, cvarsDialog, entity, NULL)
- ATTRIB(MainWindow, screenshotViewerDialog, entity, NULL)
- ATTRIB(MainWindow, viewDialog, entity, NULL)
- ATTRIB(MainWindow, hudconfirmDialog, entity, NULL)
- ATTRIB(MainWindow, languageWarningDialog, entity, NULL)
- ATTRIB(MainWindow, mainNexposee, entity, NULL)
- ATTRIB(MainWindow, fadedAlpha, float, SKINALPHA_BEHIND)
- ATTRIB(MainWindow, dialogToShow, entity, NULL)
- ATTRIB(MainWindow, demostartconfirmDialog, entity, NULL)
- ATTRIB(MainWindow, demotimeconfirmDialog, entity, NULL)
- ATTRIB(MainWindow, resetDialog, entity, NULL)
-ENDCLASS(MainWindow)
-#endif
-
-#ifdef IMPLEMENTATION
+#include "mainwindow.qh"
+
+#include <menu/mutators/_mod.qh>
+
+#include "nexposee.qh"
+#include "inputbox.qh"
+#include "dialog_termsofservice.qh"
+#include "dialog_firstrun.qh"
+#include "dialog_hudsetup_exit.qh"
+#include "dialog_hudpanel_notification.qh"
+#include "dialog_hudpanel_ammo.qh"
+#include "dialog_hudpanel_healtharmor.qh"
+#include "dialog_hudpanel_chat.qh"
+#include "dialog_hudpanel_modicons.qh"
+#include "dialog_hudpanel_powerups.qh"
+#include "dialog_hudpanel_pressedkeys.qh"
+#include "dialog_hudpanel_racetimer.qh"
+#include "dialog_hudpanel_radar.qh"
+#include "dialog_hudpanel_score.qh"
+#include "dialog_hudpanel_timer.qh"
+#include "dialog_hudpanel_vote.qh"
+#include "dialog_hudpanel_weapons.qh"
+#include "dialog_hudpanel_engineinfo.qh"
+#include "dialog_hudpanel_infomessages.qh"
+#include "dialog_hudpanel_physics.qh"
+#include "dialog_hudpanel_centerprint.qh"
+#include "dialog_hudpanel_itemstime.qh"
+#include "dialog_hudpanel_quickmenu.qh"
+#include "dialog_hudpanel_strafehud.qh"
+
+#include "dialog_settings_input_userbind.qh"
+#include "dialog_settings_bindings_reset.qh"
+#include "dialog_settings_misc_cvars.qh"
+#include "dialog_settings_misc_reset.qh"
+#include "dialog_settings_user_languagewarning.qh"
+#include "dialog_settings_game_hudconfirm.qh"
+#include "dialog_singleplayer_winner.qh"
+#include "dialog_multiplayer_join_serverinfo.qh"
+#include "dialog_multiplayer_media_demo_startconfirm.qh"
+#include "dialog_multiplayer_media_demo_timeconfirm.qh"
+#include "dialog_multiplayer_media_screenshot_viewer.qh"
+#include "dialog_multiplayer_create_mapinfo.qh"
+#include "dialog_multiplayer_create_mutators.qh"
+#include "dialog_sandboxtools.qh"
+#include "dialog_monstertools.qh"
+#include "dialog_gamemenu.qh"
+#include "dialog_welcome.qh"
+#include "dialog_teamselect.qh"
+#include "dialog_uid2name.qh"
+#include "dialog_singleplayer.qh"
+#include "dialog_multiplayer.qh"
+#include "dialog_settings.qh"
+#include "dialog_credits.qh"
+#include "dialog_quit.qh"
+
void MainWindow_draw(entity me)
{
SUPER(MainWindow).draw(me);
- if(me.dialogToShow)
- {
- DialogOpenButton_Click_withCoords(world, me.dialogToShow, '0 0 0', eX * conwidth + eY * conheight);
- me.dialogToShow = NULL;
+ if (me.firstDraw) {
+ if (me.ToSDialog.shouldShow())
+ {
+ me.ToSDialog.loadXonoticToS(me.ToSDialog);
+ DialogOpenButton_Click_withCoords(NULL, me.ToSDialog, '0 0 0', eX * conwidth + eY * conheight);
+ }
+ else if(me.firstRunDialog.shouldShow())
+ DialogOpenButton_Click_withCoords(NULL, me.firstRunDialog, '0 0 0', eX * conwidth + eY * conheight);
+
+ me.firstDraw = false;
}
}
{
entity n, i;
+ // terms of service dialog
+ me.ToSDialog = i = NEW(XonoticToSDialog);
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
// dialog run upon startup
- me.firstRunDialog = i = spawnXonoticFirstRunDialog();
+ me.firstRunDialog = i = NEW(XonoticFirstRunDialog);
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
+ i = NEW(XonoticWelcomeDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
// hud_configure dialogs
- i = spawnXonoticHUDExitDialog();
+ i = NEW(XonoticHUDExitDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDNotificationDialog();
+ i = NEW(XonoticHUDNotificationDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDAmmoDialog();
+ i = NEW(XonoticHUDAmmoDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDHealthArmorDialog();
+ i = NEW(XonoticHUDHealthArmorDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDChatDialog();
+ i = NEW(XonoticHUDChatDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDModIconsDialog();
+ i = NEW(XonoticHUDModIconsDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDPowerupsDialog();
+ i = NEW(XonoticHUDPowerupsDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDPressedKeysDialog();
+ i = NEW(XonoticHUDPressedKeysDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDRaceTimerDialog();
+ i = NEW(XonoticHUDRaceTimerDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDRadarDialog();
+ i = NEW(XonoticHUDRadarDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDScoreDialog();
+ i = NEW(XonoticHUDScoreDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDTimerDialog();
+ i = NEW(XonoticHUDTimerDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDVoteDialog();
+ i = NEW(XonoticHUDVoteDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDWeaponsDialog();
+ i = NEW(XonoticHUDWeaponsDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDEngineInfoDialog();
+ i = NEW(XonoticHUDEngineInfoDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDInfoMessagesDialog();
+ i = NEW(XonoticHUDInfoMessagesDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDPhysicsDialog();
+ i = NEW(XonoticHUDPhysicsDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDCenterprintDialog();
+ i = NEW(XonoticHUDCenterprintDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticHUDBuffsDialog();
+ i = NEW(XonoticHUDItemsTimeDialog);
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
+ i = NEW(XonoticHUDQuickMenuDialog);
i.configureDialog(i);
me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+ i = NEW(XonoticHUDStrafeHUDDialog);
+ i.configureDialog(i);
+ me.addItemRightCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
// dialogs used by settings
- me.userbindEditDialog = i = spawnXonoticUserbindEditDialog();
+ me.userbindEditDialog = i = NEW(XonoticUserbindEditDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- me.cvarsDialog = i = spawnXonoticCvarsDialog();
+ me.bindingsResetDialog = i = NEW(XonoticBindingsResetDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- me.resetDialog = i = spawnXonoticResetDialog();
+ me.cvarsDialog = i = NEW(XonoticCvarsDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- me.languageWarningDialog = i = spawnXonoticLanguageWarningDialog();
+ me.resetDialog = i = NEW(XonoticResetDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- me.hudconfirmDialog = i = spawnXonoticHUDConfirmDialog();
+ me.languageWarningDialog = i = NEW(XonoticLanguageWarningDialog);
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
+ me.hudconfirmDialog = i = NEW(XonoticHUDConfirmDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
// dialog used by singleplayer
- me.winnerDialog = i = spawnXonoticWinnerDialog();
+ me.winnerDialog = i = NEW(XonoticWinnerDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
// dialog used by multiplayer/join
- me.serverInfoDialog = i = spawnXonoticServerInfoDialog();
+ me.serverInfoDialog = i = NEW(XonoticServerInfoDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- me.demostartconfirmDialog = i = spawnXonoticDemoStartConfirmDialog();
+ me.demostartconfirmDialog = i = NEW(XonoticDemoStartConfirmDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- me.demotimeconfirmDialog = i = spawnXonoticDemoTimeConfirmDialog();
+ me.demotimeconfirmDialog = i = NEW(XonoticDemoTimeConfirmDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
// dialogs used by multiplayer/create
- me.mapInfoDialog = i = spawnXonoticMapInfoDialog();
+ me.mapInfoDialog = i = NEW(XonoticMapInfoDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- me.mutatorsDialog = i = spawnXonoticMutatorsDialog();
+ me.mutatorsDialog = i = NEW(XonoticMutatorsDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
// dialogs used by multiplayer/media
- me.screenshotViewerDialog = i = spawnXonoticScreenshotViewerDialog();
+ me.screenshotViewerDialog = i = NEW(XonoticScreenshotViewerDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
// mutator dialogs
- i = spawnXonoticSandboxToolsDialog();
+ i = NEW(XonoticSandboxToolsDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z * SKINALPHA_DIALOG_SANDBOXTOOLS);
// miscellaneous dialogs
- i = spawnXonoticTeamSelectDialog();
+ i = NEW(XonoticGameMenuDialog);
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
+ i = NEW(XonoticTeamSelectDialog);
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
+ i = NEW(XonoticUid2NameDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
- i = spawnXonoticMonsterToolsDialog();
+ i = NEW(XonoticMonsterToolsDialog);
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z * SKINALPHA_DIALOG_SANDBOXTOOLS);
+ MUTATOR_CALLHOOK(ConfigureDialogs, me);
+
// main dialogs/windows
- me.mainNexposee = n = spawnXonoticNexposee();
+ me.mainNexposee = n = NEW(XonoticNexposee);
+
/*
if(checkextension("DP_GECKO_SUPPORT"))
{
n.setNexposee(n, i, '0.1 0.1 0', SKINALPHAS_MAINMENU_x, SKINALPHAS_MAINMENU_y);
}
*/
- i = spawnXonoticSingleplayerDialog();
+
+ i = NEW(XonoticSingleplayerDialog);
i.configureDialog(i);
n.addItemCentered(n, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
n.setNexposee(n, i, SKINPOSITION_DIALOG_SINGLEPLAYER, SKINALPHAS_MAINMENU_x, SKINALPHAS_MAINMENU_y);
- i = spawnXonoticMultiplayerDialog();
+ i = NEW(XonoticMultiplayerDialog);
i.configureDialog(i);
n.addItemCentered(n, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
n.setNexposee(n, i, SKINPOSITION_DIALOG_MULTIPLAYER, SKINALPHAS_MAINMENU_x, SKINALPHAS_MAINMENU_y);
- i = spawnXonoticSettingsDialog();
+ i = NEW(XonoticSettingsDialog);
i.configureDialog(i);
n.addItemCentered(n, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
n.setNexposee(n, i, SKINPOSITION_DIALOG_SETTINGS, SKINALPHAS_MAINMENU_x, SKINALPHAS_MAINMENU_y);
- i = spawnXonoticCreditsDialog();
+ i = NEW(XonoticCreditsDialog);
i.configureDialog(i);
n.addItemCentered(n, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
n.setNexposee(n, i, SKINPOSITION_DIALOG_CREDITS, SKINALPHAS_MAINMENU_x, SKINALPHAS_MAINMENU_y);
n.pullNexposee(n, i, eY * (SKINHEIGHT_TITLE * SKINFONTSIZE_TITLE / conheight));
- i = spawnXonoticQuitDialog();
+ i = NEW(XonoticQuitDialog);
i.configureDialog(i);
n.addItemCentered(n, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
n.setNexposee(n, i, SKINPOSITION_DIALOG_QUIT, SKINALPHAS_MAINMENU_x, SKINALPHAS_MAINMENU_y);
me.moveItemAfter(me, n, NULL);
me.initializeDialog(me, n);
-
- if(cvar_string("_cl_name") == cvar_defstring("_cl_name"))
- me.dialogToShow = me.firstRunDialog;
}
-#endif
-
-/* Click. The c-word is here so you can grep for it :-) */