Compare commits

...

14 Commits

Author SHA1 Message Date
8e1566938a Update .github/workflows/build.yml 2025-02-22 13:54:29 -06:00
github-actions
570556f0a6 v1.0.0 Build 2 2025-01-05 23:01:43 +00:00
Jacob Schmidt
4c2dbd7be5 Added Audio
Some checks failed
Build / Build (push) Failing after 52s
2025-01-05 17:01:34 -06:00
github-actions
0a04a3c480 v1.0.0 Build 1 2025-01-05 01:28:24 +00:00
Jacob Schmidt
c30b5204a6 Major Hotfix 01042025@1925
Some checks failed
Build / Build (push) Failing after 52s
2025-01-04 19:27:20 -06:00
github-actions
e0ff6013f0 v1.0.0 Build 3 2025-01-02 03:35:53 +00:00
Jacob Schmidt
c24b967e2a Updated naming convention to use FORGE
All checks were successful
Build / Build (push) Successful in 54s
2025-01-01 21:35:44 -06:00
752ec7d2fd Update README.md 2024-11-17 08:43:15 -06:00
github-actions
e2c4a0d97b v1.0.0 Build 2 2024-10-21 20:42:06 +00:00
Jacob Schmidt
d7bd0b92bb Merge branch 'master' of https://gitea.innovativedevsolutions.org/IDSolutions/mod
All checks were successful
Build / Build (push) Successful in 53s
2024-10-21 15:39:27 -05:00
Jacob Schmidt
d03ef47489 Update 10212024@1540 2024-10-21 15:39:23 -05:00
37a798d272 Update README.md 2024-10-21 14:10:17 -05:00
Jacob Schmidt
7c1b81ec92 Hotfix 10202024@1845 2024-10-20 18:44:23 -05:00
9d167dee37 Update README.md 2024-10-20 18:34:11 -05:00
51 changed files with 280 additions and 137 deletions

View File

@ -10,12 +10,13 @@ on:
- "tools/**" - "tools/**"
- "LICENSE" - "LICENSE"
- "README.md" - "README.md"
- "*.json"
workflow_dispatch: workflow_dispatch:
jobs: jobs:
build: build:
name: Build name: Build
runs-on: ubuntu-22.04 runs-on: ubuntu-latest
steps: steps:
- name: Checkout Source Code - name: Checkout Source Code
uses: actions/checkout@v4 uses: actions/checkout@v4

View File

@ -1,13 +1,20 @@
name = "PMC Simulator 3.0 Mod" name = "FORGE Mod"
author = "IDSolutions" author = "IDSolutions"
prefix = "pmcs" prefix = "forge"
mainprefix = "z" mainprefix = "z"
[files] [files]
include = [ include = [
"pmcs_mod_version.json",
"*.paa", "*.paa",
"userconfig/**/*" "*.json",
"userconfig/**/*",
"mod.cpp",
"README.md",
"LICENSE",
"icon_64_ca.paa",
"icon_128_ca.paa",
"icon_128_highlight_ca.paa",
"title_co.paa"
] ]
[version] [version]

View File

@ -7,18 +7,52 @@
<img src="https://gitea.innovativedevsolutions.org/IDSolutions/mod/actions/workflows/build.yml/badge.svg?branch=master" alt="build-status" /></a> <img src="https://gitea.innovativedevsolutions.org/IDSolutions/mod/actions/workflows/build.yml/badge.svg?branch=master" alt="build-status" /></a>
</p> </p>
Welcome to **SOF Mod**. Arma 3 FORGE Mod: Modern Combat Interface\
Version: Alpha 0.1.0
This addon was designed for PMC Simulator 3.0. [Development Status: Active]
If something is broken, contact **jschmidt92** or open a new issue on **[Gitea](https://gitea.innovativedevsolutions.org/IDSolutions/mod/issues)**. ---
</br> Transform your battlefield communications with Arma 3 FORGE Mod, introducing next-generation mobile interfaces for modern warfare. Starting with an innovative phone and tablet system, this framework sets the foundation for future combat technology integration.
**For more information, [visit the Wiki.](https://innovativedevsolutions.org/knowledgebase)** Key Features:
---
* Mobile Command: Access mission-critical information through sleek phone and tablet interfaces
* Tactical Communications: Coordinate with your team using modern mobile devices
* Modular Framework: Built for expansion with new devices and capabilities
* Clean Interface: Intuitive UI design focused on combat effectiveness
* Real-time Updates: Stay connected to your organization's operations
* Future-ready: Structured for continuous feature expansion
**For additional tools, [visit the Website.](https://innovativedevsolutions.org)** Perfect for:
* Modern combat scenarios
* Team communications
* Strategic coordination
* Tactical planning
## Contributors Coming Features:
* Advanced device capabilities
* Enhanced UI elements
* Expanded communication tools
* New technology integration
- **_Creedcoder_** for his help and input Technical Features:
---
* Modern UI Framework
* Event-Driven Systems
* Expandable Device Architecture
* Developer-friendly Structure
Support & Development
---
* Regular Updates
* Developer Documentation
* Community Input Welcome
* Technical Support
License:
---
This mod is licensed under the [Arma Public License (APL-SA)](https://www.bohemia.net/community/licenses/arma-public-license-share-alike).
Experience the future of battlefield communications with FORGE Mod.

1
addons/audio/$PBOPREFIX$ Normal file
View File

@ -0,0 +1 @@
z\forge\addons\audio

View File

@ -0,0 +1,19 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
serverInit = QUOTE(call COMPILE_FILE(XEH_preInit_server));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
clientInit = QUOTE(call COMPILE_FILE(XEH_postInit_client));
};
};

View File

@ -0,0 +1 @@
class CfgSentences {};

View File

@ -0,0 +1,24 @@
class CfgSounds {
sounds[] = {};
class FORGE_timerBeep {
name = "FORGE_timerBeep";
sound[] = {QUOTE(PATHTOF(sounds\timerClick.wav)), 1, 3};
titles[] = {};
};
class FORGE_timerBeepShort {
name = "FORGE_timerBeepShort";
sound[] = {QUOTE(PATHTOF(sounds\timerClickShort.wav)), 1, 3};
titles[] = {};
};
class FORGE_timerEnd {
name = "FORGE_timerEnd";
sound[] = {QUOTE(PATHTOF(sounds\timerEnd.wav)), 1, 3};
titles[] = {};
};
class FORGE_defused {
name = "FORGE_defused";
sound[] = {QUOTE(PATHTOF(sounds\defused.wav)), 1, 3};
titles[] = {};
};
};
class CfgSFX {};

View File

@ -0,0 +1,16 @@
class CfgVehicles {
class All;
class Sound: All {
author = "FORGE";
mapSize = 1;
_generalMacro = "Sound";
scope = 0;
side = -1;
animated = 0;
vehicleClass = "Sounds";
icon = "iconSound";
faction = "none";
editorCategory = "forge";
editorSubcategory = "forge_audio";
};
};

View File

View File

@ -0,0 +1 @@
#include "script_component.hpp"

View File

@ -0,0 +1 @@
#include "script_component.hpp"

View File

@ -0,0 +1,8 @@
#include "script_component.hpp"
ADDON = false;
PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
ADDON = true;

View File

@ -0,0 +1 @@
#include "script_component.hpp"

View File

@ -0,0 +1,2 @@
#include "script_component.hpp"
#include "XEH_PREP.hpp"

19
addons/audio/config.cpp Normal file
View File

@ -0,0 +1,19 @@
#include "script_component.hpp"
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"forge_main"};
authors[] = {"J. Schmidt", "Creedcoder"};
author = "IDSolutions";
VERSION_CONFIG;
};
};
#include "CfgEventHandlers.hpp"
#include "CfgSounds.hpp"
#include "CfgSentences.hpp"
#include "CfgVehicles.hpp"

View File

@ -0,0 +1,16 @@
#define COMPONENT audio
#define COMPONENT_BEAUTIFIED Audio
#include "..\main\script_mod.hpp"
// #define DEBUG_MODE_FULL
// #define DISABLE_COMPILE_CACHE
#ifdef DEBUG_ENABLED_AUDIO
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_SETTINGS_AUDIO
#define DEBUG_SETTINGS DEBUG_SETTINGS_AUDIO
#endif
#include "..\main\script_macros.hpp"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
z\pmcs\addons\main z\forge\addons\main

View File

@ -1,7 +1,7 @@
class CfgMods { class CfgMods {
class PREFIX { class PREFIX {
dir = "@pmcs"; dir = "@forge";
name = "PMC Simulator 3.0 Mod"; name = "FORGE Mod";
author = "IDSolutions"; author = "IDSolutions";
picture = "title_co.paa"; picture = "title_co.paa";
hideName = "false"; hideName = "false";

View File

@ -1,5 +1,5 @@
#define MAINPREFIX z #define MAINPREFIX z
#define PREFIX sof #define PREFIX forge
#include "script_version.hpp" #include "script_version.hpp"
@ -9,7 +9,7 @@
#define REQUIRED_VERSION 2.12 #define REQUIRED_VERSION 2.12
#ifdef COMPONENT_BEAUTIFIED #ifdef COMPONENT_BEAUTIFIED
#define COMPONENT_NAME QUOTE(SOF Mod - COMPONENT_BEAUTIFIED) #define COMPONENT_NAME QUOTE(FORGE Mod - COMPONENT_BEAUTIFIED)
#else #else
#define COMPONENT_NAME QUOTE(SOF Mod - COMPONENT) #define COMPONENT_NAME QUOTE(FORGE Mod - COMPONENT)
#endif #endif

View File

@ -1,4 +1,4 @@
#define MAJOR 1 #define MAJOR 1
#define MINOR 0 #define MINOR 0
#define PATCH 0 #define PATCH 0
#define BUILD 1 #define BUILD 2

View File

@ -1 +1 @@
z\pmcs\addons\phone z\forge\addons\phone

View File

@ -1,6 +1,6 @@
class CfgVehicles { class CfgVehicles {
class Item_Base_F; class Item_Base_F;
class PMCS_Item_Phone: Item_Base_F { class FORGE_Item_Phone: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
author = "IDSolutions"; author = "IDSolutions";
@ -8,7 +8,7 @@ class CfgVehicles {
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
MACRO_ADDITEM(PMCS_Phone,1); MACRO_ADDITEM(FORGE_Phone,1);
}; };
}; };
}; };

View File

@ -1,15 +1,15 @@
class CfgWeapons { class CfgWeapons {
class ACE_ItemCore; class ACE_ItemCore;
class CBA_MiscItem_ItemInfo; class CBA_MiscItem_ItemInfo;
class PMCS_Phone: ACE_ItemCore { class FORGE_Phone: ACE_ItemCore {
scope = 2; scope = 2;
scopeArsenal = 2; scopeArsenal = 2;
scopeCurator = 2; scopeCurator = 2;
author = "IDSolutions"; author = "IDSolutions";
displayName = "Phone"; displayName = "Phone";
picture = QPATHTOF(images\mobile_frame.paa); picture = QPATHTOF(images\mobile_frame.paa);
model = QPATHTOF(data\pmcs_mobile.p3d); model = QPATHTOF(data\forge_mobile.p3d);
descriptionShort = "PMC Simulator 3.0 cell phone for text-messaging and more."; descriptionShort = "FORGE cell phone for text-messaging and more.";
hiddenSelections[] = {}; hiddenSelections[] = {};
hiddenSelectionsTextures[] = {}; hiddenSelectionsTextures[] = {};

View File

@ -3,10 +3,10 @@
class CfgPatches { class CfgPatches {
class ADDON { class ADDON {
name = COMPONENT_NAME; name = COMPONENT_NAME;
units[] = {"PMCS_Item_Phone"}; units[] = {"FORGE_Item_Phone"};
weapons[] = {"PMCS_Phone"}; weapons[] = {"FORGE_Phone"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"pmcs_main"}; requiredAddons[] = {"forge_main"};
authors[] = {"J. Schmidt", "Creedcoder"}; authors[] = {"J. Schmidt", "Creedcoder"};
author = "IDSolutions"; author = "IDSolutions";
VERSION_CONFIG; VERSION_CONFIG;

View File

@ -7,7 +7,7 @@ specularPower=0;
PixelShaderID = "NormalMapDetailSpecularDIMap"; PixelShaderID = "NormalMapDetailSpecularDIMap";
VertexShaderID = "NormalMap"; VertexShaderID = "NormalMap";
class Stage1 { class Stage1 {
texture = "z\pmcs\addons\phone\data\pmcs_mobile_nohq.paa"; texture = "z\forge\addons\phone\data\forge_mobile_nohq.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform { class uvTransform {
aside[] = {1,0,0}; aside[] = {1,0,0};
@ -17,7 +17,7 @@ class Stage1 {
}; };
}; };
class Stage2 { class Stage2 {
texture = "z\pmcs\addons\phone\data\pmcs_mobile_dt.paa"; texture = "z\forge\addons\phone\data\forge_mobile_dt.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform { class uvTransform {
aside[] = {1,0,0}; aside[] = {1,0,0};
@ -27,7 +27,7 @@ class Stage2 {
}; };
}; };
class Stage3 { class Stage3 {
texture = "z\pmcs\addons\phone\data\pmcs_mobile_smdi.paa"; texture = "z\forge\addons\phone\data\forge_mobile_smdi.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform { class uvTransform {
aside[] = {1,0,0}; aside[] = {1,0,0};

View File

@ -8,7 +8,8 @@
#ifdef DEBUG_ENABLED_PHONE #ifdef DEBUG_ENABLED_PHONE
#define DEBUG_MODE_FULL #define DEBUG_MODE_FULL
#endif #endif
#ifdef DEBUG_SETTINGS_PHONE
#ifdef DEBUG_SETTINGS_PHONE
#define DEBUG_SETTINGS DEBUG_SETTINGS_PHONE #define DEBUG_SETTINGS DEBUG_SETTINGS_PHONE
#endif #endif

View File

@ -0,0 +1,22 @@
class CfgPhone {
class themes {
class bg_dark01 {
themeName = "Dark"; // Name of theme
themeBackground = "\@forge\userconfig\backgrounds\bgdark_01.paa"; // Must be file type: PAA and size: 512x1024
};
class bg_dark02 {
themeName = "Alt Dark";
themeBackground = "\@forge\userconfig\backgrounds\bgdark_02.paa";
};
class bg_light01 {
themeName = "Light";
themeBackground = "\@forge\userconfig\backgrounds\bglight_01.paa";
};
class bg_light02 {
themeName = "Alt Light";
themeBackground = "\@forge\userconfig\backgrounds\bglight_02.paa";
};
};
class notifications {};
class ringtones {};
};

View File

@ -1,22 +0,0 @@
class PMCS_CfgPhones {
class themes {
class bg_dark01 {
themeName = "Dark"; // Name of theme
themeBackground = "\@pmcs\userconfig\backgrounds\bgdark_01.paa"; // Must be file type: PAA and size: 512x1024
};
class bg_dark02 {
themeName = "Alt Dark";
themeBackground = "\@pmcs\userconfig\backgrounds\bgdark_02.paa";
};
class bg_light01 {
themeName = "Light";
themeBackground = "\@pmcs\userconfig\backgrounds\bglight_01.paa";
};
class bg_light02 {
themeName = "Alt Light";
themeBackground = "\@pmcs\userconfig\backgrounds\bglight_02.paa";
};
};
class notifications {};
class ringtones {};
};

View File

@ -1 +1 @@
z\pmcs\addons\tablet z\forge\addons\tablet

View File

@ -1,6 +1,6 @@
class CfgVehicles { class CfgVehicles {
class Item_Base_F; class Item_Base_F;
class PMCS_Item_Tablet: Item_Base_F { class FORGE_Item_Tablet: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
author = "IDSolutions"; author = "IDSolutions";
@ -8,7 +8,7 @@ class CfgVehicles {
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
MACRO_ADDITEM(PMCS_Tablet,1); MACRO_ADDITEM(FORGE_Tablet,1);
}; };
}; };
}; };

View File

@ -1,15 +1,15 @@
class CfgWeapons { class CfgWeapons {
class ACE_ItemCore; class ACE_ItemCore;
class CBA_MiscItem_ItemInfo; class CBA_MiscItem_ItemInfo;
class PMCS_Tablet: ACE_ItemCore { class FORGE_Tablet: ACE_ItemCore {
scope = 2; scope = 2;
scopeArsenal = 2; scopeArsenal = 2;
scopeCurator = 2; scopeCurator = 2;
author = "IDSolutions"; author = "IDSolutions";
displayName = "Tablet"; displayName = "Tablet";
picture = QPATHTOF(images\getac_f110.paa); picture = QPATHTOF(images\getac_f110.paa);
model = QPATHTOF(data\pmcs_tablet.p3d); model = QPATHTOF(data\forge_tablet.p3d);
descriptionShort = "PMC Simulator 3.0 tablet for navigation, communication, and more."; descriptionShort = "FORGE tablet for navigation, communication, and more.";
hiddenSelections[] = {"camo1"}; hiddenSelections[] = {"camo1"};
hiddenSelectionsTextures[] = {QPATHTOF(data\getac_f110_co.paa)}; hiddenSelectionsTextures[] = {QPATHTOF(data\getac_f110_co.paa)};

View File

@ -3,10 +3,10 @@
class CfgPatches { class CfgPatches {
class ADDON { class ADDON {
name = COMPONENT_NAME; name = COMPONENT_NAME;
units[] = {"PMCS_Item_Tablet"}; units[] = {"FORGE_Item_Tablet"};
weapons[] = {"PMCS_Tablet"}; weapons[] = {"FORGE_Tablet"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"pmcs_main"}; requiredAddons[] = {"forge_main"};
authors[] = {"J. Schmidt", "Creedcoder"}; authors[] = {"J. Schmidt", "Creedcoder"};
author = "IDSolutions"; author = "IDSolutions";
VERSION_CONFIG; VERSION_CONFIG;

Binary file not shown.

View File

@ -4,16 +4,16 @@ class CfgSkeletons {
skeletonInherit = ""; skeletonInherit = "";
skeletonBones[] = {}; skeletonBones[] = {};
}; };
class pmcs_tablet_skeleton: Default { class forge_tablet_skeleton: Default {
isDiscrete = 1; isDiscrete = 1;
skeletonInherit = ""; skeletonInherit = "";
skeletonBones[] = { skeletonBones[] = {
"camo1","" "camo1",""
}; };
}; };
class land_pmcs_tablet_skeleton: pmcs_tablet_skeleton { class land_forge_tablet_skeleton: forge_tablet_skeleton {
isDiscrete = 1; isDiscrete = 1;
skeletonInherit = "pmcs_tablet_skeleton"; skeletonInherit = "forge_tablet_skeleton";
skeletonBones[] = { skeletonBones[] = {
"camo1","" "camo1",""
}; };
@ -26,14 +26,14 @@ class CfgModels {
skeletonName = ""; skeletonName = "";
class Animations {}; class Animations {};
}; };
class pmcs_tablet: Default { class forge_tablet: Default {
skeletonName = "pmcs_tablet_skeleton"; skeletonName = "forge_tablet_skeleton";
sections[] = { sections[] = {
"camo1" "camo1"
}; };
}; };
class land_pmcs_tablet: pmcs_tablet { class land_forge_tablet: forge_tablet {
skeletonName = "land_pmcs_tablet_skeleton"; skeletonName = "land_forge_tablet_skeleton";
sections[] = { sections[] = {
"camo1" "camo1"
}; };

Binary file not shown.

View File

@ -8,7 +8,8 @@
#ifdef DEBUG_ENABLED_TABLET #ifdef DEBUG_ENABLED_TABLET
#define DEBUG_MODE_FULL #define DEBUG_MODE_FULL
#endif #endif
#ifdef DEBUG_SETTINGS_TABLET
#ifdef DEBUG_SETTINGS_TABLET
#define DEBUG_SETTINGS DEBUG_SETTINGS_TABLET #define DEBUG_SETTINGS DEBUG_SETTINGS_TABLET
#endif #endif

32
main.go
View File

@ -1,6 +1,7 @@
package main package main
import ( import (
"encoding/json"
"fmt" "fmt"
"log" "log"
"os" "os"
@ -9,6 +10,10 @@ import (
"code.gitea.io/sdk/gitea" "code.gitea.io/sdk/gitea"
) )
type VersionInfo struct {
Version string `json:"version"`
}
func main() { func main() {
client, err := createGiteaClient() client, err := createGiteaClient()
if err != nil { if err != nil {
@ -20,6 +25,10 @@ func main() {
log.Fatalf("VERSION environment variable is not set") log.Fatalf("VERSION environment variable is not set")
} }
if err := updateVersionFile(version); err != nil {
log.Fatalf("Error updating version file: %v", err)
}
repoOwner := "IDSolutions" repoOwner := "IDSolutions"
repoName := "mod" repoName := "mod"
@ -29,14 +38,29 @@ func main() {
} }
// Construct the filename using the version // Construct the filename using the version
artifactFilename := fmt.Sprintf("pmcs-%s.zip", version) artifactFilename := fmt.Sprintf("forge-%s.zip", version)
artifactPath := filepath.Join("releases", artifactFilename) artifactPath := filepath.Join("releases", artifactFilename)
if err := uploadArtifact(client, repoOwner, repoName, release.ID, artifactPath); err != nil { if err := uploadArtifact(client, repoOwner, repoName, release.ID, artifactPath); err != nil {
log.Fatalf("Error uploading release asset: %v", err) log.Fatalf("Error uploading release asset: %v", err)
} }
fmt.Println("Release created and artifact uploaded successfully!") fmt.Println("Release created, artifact uploaded, and version file updated successfully!")
}
func updateVersionFile(version string) error {
versionInfo := VersionInfo{Version: version}
jsonData, err := json.MarshalIndent(versionInfo, "", " ")
if err != nil {
return fmt.Errorf("error marshaling version info: %w", err)
}
err = os.WriteFile("forge_mod_version.json", jsonData, 0644)
if err != nil {
return fmt.Errorf("error writing version file: %w", err)
}
return nil
} }
func createGiteaClient() (*gitea.Client, error) { func createGiteaClient() (*gitea.Client, error) {
@ -50,7 +74,7 @@ func createGiteaClient() (*gitea.Client, error) {
func createRelease(client *gitea.Client, owner, repo, version string) (*gitea.Release, error) { func createRelease(client *gitea.Client, owner, repo, version string) (*gitea.Release, error) {
release, _, err := client.CreateRelease(owner, repo, gitea.CreateReleaseOption{ release, _, err := client.CreateRelease(owner, repo, gitea.CreateReleaseOption{
TagName: version, TagName: version,
Title: fmt.Sprintf("PMC Simulator 3.0 Mod v%s", version), Title: fmt.Sprintf("FORGE Mod v%s", version),
Note: fmt.Sprintf("Release notes for version %s", version), Note: fmt.Sprintf("Release notes for version %s", version),
}) })
return release, err return release, err
@ -65,4 +89,4 @@ func uploadArtifact(client *gitea.Client, owner, repo string, releaseID int64, a
_, _, err = client.CreateReleaseAttachment(owner, repo, releaseID, file, filepath.Base(artifactPath)) _, _, err = client.CreateReleaseAttachment(owner, repo, releaseID, file, filepath.Base(artifactPath))
return err return err
} }

10
mod.cpp
View File

@ -1,5 +1,5 @@
dir = "@pmcs"; dir = "@forge";
name = "PMC Simulator 3.0"; name = "FORGE";
author = "IDSolutions"; author = "IDSolutions";
picture = "title_co.paa"; picture = "title_co.paa";
hideName = "false"; hideName = "false";
@ -8,9 +8,9 @@ logoSmall = "icon_64_ca.paa";
logo = "icon_128_ca.paa"; logo = "icon_128_ca.paa";
logoOver = "icon_128_highlight_ca.paa"; logoOver = "icon_128_highlight_ca.paa";
tooltip = "Tip of the morning"; tooltip = "Tip of the morning";
tooltipOwned = "PMC Simulator 3.0"; tooltipOwned = "FORGE";
overview = "PMC Simulator 3.0 Official Modification"; overview = "FORGE Official Modification";
description = "It's unclear where this will show"; description = "FORGE Mod - Version 1.0.0";
action = "https://innovativedevsolutions.org/"; action = "https://innovativedevsolutions.org/";
actionName = "Website"; actionName = "Website";
dlcColor[] = {0.45, 0.47, 0.41, 1}; dlcColor[] = {0.45, 0.47, 0.41, 1};

View File

@ -1,34 +0,0 @@
import os
from zipfile import ZipFile, ZIP_LZMA
def createReleasePath():
dirName = '../x/sof/release'
if not os.path.exists(dirName):
os.makedirs(dirName)
print('Directory ', dirName, ' created.')
else:
print('Directory ', dirName, ' already exists!')
def getAllFilePaths(dirName):
filePaths = []
for root, directories, files in os.walk(dirName):
for fileName in files:
filePath = os.path.join(root, fileName)
filePaths.append(filePath)
return filePaths
def main():
dirName = '../sof'
filePaths = getAllFilePaths(dirName)
print('The following files will be zipped:')
for fileName in filePaths:
print(fileName)
with ZipFile('../x/sof/release/sof.zip', 'w', compression=ZIP_LZMA) as zip:
for file in filePaths:
zip.write(file)
print('All files zipped successfully!')
if __name__ == "__main__":
createReleasePath()
main()

View File

@ -0,0 +1,22 @@
class CfgPhone {
class themes {
class bg_dark01 {
themeName = "Dark"; // Name of theme
themeBackground = "\@forge\userconfig\backgrounds\bgdark_01.paa"; // Must be file type: PAA and size: 512x1024
};
class bg_dark02 {
themeName = "Alt Dark";
themeBackground = "\@forge\userconfig\backgrounds\bgdark_02.paa";
};
class bg_light01 {
themeName = "Light";
themeBackground = "\@forge\userconfig\backgrounds\bglight_01.paa";
};
class bg_light02 {
themeName = "Alt Light";
themeBackground = "\@forge\userconfig\backgrounds\bglight_02.paa";
};
};
class notifications {};
class ringtones {};
};

View File

@ -1,22 +0,0 @@
class PMCS_CfgPhones {
class themes {
class bg_dark01 {
themeName = "Dark"; // Name of theme
themeBackground = "\@pmcs\userconfig\backgrounds\bgdark_01.paa"; // Must be file type: PAA and size: 512x1024
};
class bg_dark02 {
themeName = "Alt Dark";
themeBackground = "\@pmcs\userconfig\backgrounds\bgdark_02.paa";
};
class bg_light01 {
themeName = "Light";
themeBackground = "\@pmcs\userconfig\backgrounds\bglight_01.paa";
};
class bg_light02 {
themeName = "Alt Light";
themeBackground = "\@pmcs\userconfig\backgrounds\bglight_02.paa";
};
};
class notifications {};
class ringtones {};
};