Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mission initialization overhaul #483

Merged
merged 11 commits into from
Aug 31, 2018
6 changes: 3 additions & 3 deletions Missionframework/KPLIB_functions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
File: KPLIB_functions.hpp
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-10-16
Last Update: 2018-08-03
Last Update: 2018-08-31
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html

Description:
Expand All @@ -17,7 +17,7 @@ class CfgFunctions {
#include "modules\00_init\functions.hpp"
#include "modules\01_core\functions.hpp"
#include "modules\02_build\functions.hpp"
#include "modules\99_adminMenu\functions.hpp"
#include "modules\99_playerMenu\functions.hpp"
#include "modules\99_adm\functions.hpp"
#include "modules\99_plm\functions.hpp"
};
};
6 changes: 3 additions & 3 deletions Missionframework/KPLIB_ui.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
File: KPLIB_ui.hpp
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-10-16
Last Update: 2018-08-03
Last Update: 2018-08-31
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html

Description:
Expand All @@ -15,5 +15,5 @@
#include "modules\00_init\ui.hpp"
#include "modules\01_core\ui.hpp"
#include "modules\02_build\ui.hpp"
#include "modules\99_adminMenu\ui.hpp"
#include "modules\99_playerMenu\ui.hpp"
#include "modules\99_adm\ui.hpp"
#include "modules\99_plm\ui.hpp"
4 changes: 2 additions & 2 deletions Missionframework/KP_GUI/KP_uiDefines.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
File: KP_uiDefines.hpp
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-07-10
Last Update: 2018-08-04
Last Update: 2018-08-31
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html

Description:
Expand Down Expand Up @@ -334,7 +334,7 @@ class KP_DialogTitleC: KP_Title {

// Cross symbol
class KP_DialogCrossC: KP_CloseCross {
x = safeZoneX + safeZoneW * (KP_X_VAL_C + KP_WIDTH_VAL_C - 0.02)
x = safeZoneX + safeZoneW * (KP_X_VAL_C + KP_WIDTH_VAL_C - 0.02);
y = KP_GETY_CROSS(KP_Y_VAL_C);
};

Expand Down
42 changes: 0 additions & 42 deletions Missionframework/init.sqf

This file was deleted.

31 changes: 0 additions & 31 deletions Missionframework/initPlayerLocal.sqf

This file was deleted.

25 changes: 0 additions & 25 deletions Missionframework/initServer.sqf

This file was deleted.

24 changes: 19 additions & 5 deletions Missionframework/modules/00_init/fnc/fn_init_configGuard.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
File: fn_init_configGuard.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2018-06-19
Last Update: 2018-07-01
Last Update: 2018-08-31
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html

Description:
Expand All @@ -17,7 +17,8 @@
Returns:
NOTHING
*/
// We can't use our params vars here as this will be ran before all other functions

// We can't use our params vars here as this will be ran before all other functions
if(!isServer || (["DebugConfigGuard", 1] call BIS_fnc_getParamValue) == 0) exitWith {};

// Create validation namespace on server
Expand All @@ -36,18 +37,31 @@ KPLIB_validationNamespace setVariable ["resistance", false];
// Delay all checks unitl all initialization is done
[] spawn {
waitUntil{time > 0 && count call KPLIB_fnc_common_getAllPlayers > 0};
diag_log "[KP LIBERATION] [CFG GUARD] Validating configuration files";
diag_log format ["[KP LIBERATION] [%1] [CFG GUARD] Validating configuration files...", diag_tickTime];

// Get array of variables to check
private _toValidate = allVariables KPLIB_validationNamespace;
// If there is any "false" variable this means one of the guarded config files is invalid
private _invalidConfig = (_toValidate findIf {!(KPLIB_validationNamespace getVariable _x)}) != -1;

if(_invalidConfig) exitWith {
diag_log "[KP LIBERATION] [CFG GUARD] Invalid configuration files present. Ending mission for everyone";
diag_log format ["[KP LIBERATION] [%1] [CFG GUARD] Invalid configuration files present. Ending mission for everyone", diag_tickTime];

"KPLIB_configError" call BIS_fnc_endMissionServer;
};

diag_log "[KP LIBERATION] [CFG GUARD] All configuration files seem to be OK";
diag_log format ["[KP LIBERATION] [%1] [CFG GUARD] Configuration files are valid", diag_tickTime];

diag_log format [
"[KP LIBERATION] [MISSIONSTART] Missionfile: %1 - World Name: %2 - Version: %3 - Blufor: %4 - Opfor: %5 - Resistance: %6 - Civilians: %7 - Arsenal: %8 - ACE: %9",
(localize "STR_MISSION_TITLE"),
worldName,
(localize "STR_MISSION_VERSION"),
KPLIB_preset_blufor,
KPLIB_preset_opfor,
KPLIB_preset_resistance,
KPLIB_preset_civilians,
KPLIB_preset_arsenal,
KPLIB_ace_enabled
];
};
10 changes: 5 additions & 5 deletions Missionframework/modules/00_init/fnc/fn_init_load.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
File: fn_init_load.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2018-03-29
Last Update: 2018-03-29
Last Update: 2018-08-31
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html

Description:
Expand All @@ -26,19 +26,19 @@ if (KPLIB_param_wipeSave1 > 0 && KPLIB_param_wipeSave2 > 0) then {
KPLIB_save_data = profileNamespace getVariable KPLIB_save_key;

if !(isNil "KPLIB_save_data") then {
if (KPLIB_param_debugSave > 0) then {diag_log format ["[KP LIBERATION] [SAVE] ----- Time: %1 - Saved data loading -----", diag_tickTime];};
if (KPLIB_param_debugSave > 0) then {diag_log format ["[KP LIBERATION] [%1] [SAVE] ----- Saved data loading -----", diag_tickTime];};

// Load data via module specific data load functions
[KPLIB_save_data select 0] call KPLIB_fnc_init_loadData;

if (KPLIB_param_debugSave > 0) then {diag_log format ["[KP LIBERATION] [SAVE] ----- Time: %1 - Saved data loaded -----", diag_tickTime];};
if (KPLIB_param_debugSave > 0) then {diag_log format ["[KP LIBERATION] [%1] [SAVE] ----- Saved data loaded -----", diag_tickTime];};
} else {
if (KPLIB_param_debugSave > 0) then {diag_log format ["[KP LIBERATION] [SAVE] ----- Time: %1 - New campaign initializing -----", diag_tickTime];};
if (KPLIB_param_debugSave > 0) then {diag_log format ["[KP LIBERATION] [%1] [SAVE] ----- New campaign initializing -----", diag_tickTime];};

// Call the load functions, which will generate a fresh campaign
call KPLIB_fnc_init_loadData;

if (KPLIB_param_debugSave > 0) then {diag_log format ["[KP LIBERATION] [SAVE] ----- Time: %1 - New campaign initialized -----", diag_tickTime];};
if (KPLIB_param_debugSave > 0) then {diag_log format ["[KP LIBERATION] [%1] [SAVE] ----- New campaign initialized -----", diag_tickTime];};
};

KPLIB_save_loaded = true;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
/*
KP LIBERATION MODULE INITIALIZATION
KPLIB_fnc_init_postInitModule

File: initModule.sqf
File: fn_init_postInitModule.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-10-16
Last Update: 2018-03-29
Date: 2017-08-31
Last Update: 2018-08-31
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html

Description:
This module initialize basically everything that should be done before the player passes the briefing screen.
Tasks of this module are:
* Fetch parameters
* Fetch config values
* Define basic ui values
* Fetch, check and distribute preset data
* Sort sector markers to specific arrays
* Initialize the save manager
* Connect unlockable vehicles to military sectors
Expand All @@ -23,22 +18,14 @@

Dependencies:
NONE

Returns:
BOOL
*/
if(isServer) then {
DEBUG_EVENTS = [
"KPLIB_vehicle_spawned",
"KPLIB_fob_built",
"KPLIB_sector_activated",
"KPLIB_sector_captured",
"KPLIB_sector_deactivated",
"KPLIB_player_fob"
];

{
[_x, compile ("diag_log 'eventCalled " + _x + "'; diag_log _this;")] call CBA_fnc_addEventHandler;
[_x, compile ("systemChat 'eventCalled " + _x + "'; systemChat format['%1', _this];")] call CBA_fnc_addEventHandler;
} forEach DEBUG_EVENTS;
};

if (!isServer) exitWith {};

diag_log format ["[KP LIBERATION] [%1] [POST INIT] Module initializing...", diag_tickTime];

// Read the module globals
call compile preprocessFileLineNumbers "modules\00_init\globals.sqf";
Expand All @@ -58,3 +45,7 @@ execVM "modules\00_init\scripts\server\saveTimer\timer.sqf";

// Create locked vehicle markers
call KPLIB_fnc_init_createLockedVehMarkers;

diag_log format ["[KP LIBERATION] [%1] [POST INIT] Module initialized", diag_tickTime];

true
46 changes: 46 additions & 0 deletions Missionframework/modules/00_init/fnc/fn_init_preInitModule.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
KPLIB_fnc_init_preInitModule

File: fn_init_preInitModule.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-08-31
Last Update: 2018-08-31
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html

Description:
Tasks of this module are:
* Fetch parameters
* Fetch config values
* Define basic ui values
* Fetch, check and distribute preset data

Dependencies:
NONE

Returns:
BOOL
*/

diag_log format ["[KP LIBERATION] [%1] [PRE INIT] Module initializing...", diag_tickTime];

// Check for ACE
KPLIB_ace_enabled = isClass (configFile >> "CfgPatches" >> "ace_main");
KPLIB_ace_medical = isClass (configfile >> "CfgPatches" >> "ace_medical");

// Check for KP Ranks
KPLIB_kpr_enabled = isClass (configFile >> "CfgPatches" >> "KP_Ranks");

// Parameter processing and vanilla save deactivation on the server only
if (isServer) then {
enableSaving [false, false];

KPLIB_param_source = ["LoadSaveParams", 1] call BIS_fnc_getParamValue;
call KPLIB_fnc_init_paramFetchAll;
};

// Read the KPLIB_config.sqf file
call compile preprocessFileLineNumbers "KPLIB_config.sqf";

diag_log format ["[KP LIBERATION] [%1] [PRE INIT] Module initialized", diag_tickTime];

true
Loading