Skip to content

Commit

Permalink
Version 0.3-beta
Browse files Browse the repository at this point in the history
  • Loading branch information
Argent77 committed May 20, 2017
1 parent f246ea9 commit 8f98131
Show file tree
Hide file tree
Showing 12 changed files with 672 additions and 148 deletions.
34 changes: 16 additions & 18 deletions HiddenGameplayOptions/languages/english/mod.tra
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
// -*- coding: utf-8 -*-

@1000 = ~Enable Debug Console~
@1000 = ~Enable Debug Mode~
@1001 = ~Enabling this setting allows you to activate cheat keys and the debug console.

Use keyboard shortcut CTRL+SPACE to activate the console in the game.
Use keyboard shortcut CTRL+SPACE to activate the console. Console commands include ^PC:AddGold(number)^-, ^PC:CreateItem("name")^-, ^PC:SetCurrentXP(number)^-, and many more.

Cheat keys include CTRL+Y to insta-kill creatures under the mouse cursor, CTRL+R to heal and dispel effects from characters under the mouse cursor, CTRL+J to teleport selected party members to the current cursor location, CTRL+T to advance game time by one hour, CTRL+4 to toggle visibility of interactive regions, and many more.

Console commands include ^PC:AddGold(number)^-, ^PC:CreateItem("name")^-, ^PC:SetCurrentXP(number)^-, and many more.

^NNote: You must restart the game for changes to take effect.^-~

@1100 = ~Enable UI Edit Mode~
Expand All @@ -23,35 +21,35 @@ Press F11 to activate or deactivate UI edit mode. While this mode is active it i

^NNote: You must restart the game for changes to take effect.^-~

@1300 = ~Show Trigger Icons on Tab~
@1301 = ~Enable this setting to reveal additional information about interactive regions when pressing the TAB key.
@1300 = ~Hotkeys On Tooltips~
@1301 = ~When this setting is enabled tooltips will display hotkeys when available.

^NNote: You must restart the game for changes to take effect.^-~

@1400 = ~Allow Spacebar in Dialogs~
@1401 = ~Enabling this setting allows you to continue conversations by using the spacebar.
@1400 = ~Show Trigger Icons on Tab~
@1401 = ~Enabling this setting reveals additional information about interactive regions when pressing the TAB key.

^NNote: You must restart the game for changes to take effect.^-~

@1500 = ~Limit druidic spells for Cleric/Ranger~
@1501 = ~This setting controls the availability of druidic spells for multi- or dualclassed Cleric/Rangers.

Enable this option to limit druidic spells to level 3 - the maximum allowed spell level available to rangers. Cleric spells are not affected by this option.
@1500 = ~Allow Spacebar in Dialogs~
@1501 = ~Enabling this setting allows you to continue conversations by using the spacebar.

^NNote: You must restart the game for changes to take effect.^-~

@1600 = ~3E Sneak Attack~
@1601 = ~Enabling this setting activates Sneak Attack and Crippling Strike, which are special abilities similar to those from Wizards of the Coast's 3rd Edition Dungeons & Dragons® rules.
@1600 = ~Limit druidic spells for Cleric/Ranger~
@1601 = ~This setting controls the availability of druidic spells for multi- or dualclassed Cleric/Rangers.

Enable this option to limit druidic spells to level 3 - the maximum allowed spell level available to rangers. Cleric spells are not affected by this option.

^NNote: You must restart the game for changes to take effect.^-~

@1700 = ~Screen Shake on Critical Hit~
@1701 = ~Enabling this setting triggers a screen shake whenever a party member rolls a critical hit in combat.
@1700 = ~3E Sneak Attack~
@1701 = ~Enabling this setting activates Sneak Attack and Crippling Strike, which are special abilities similar to those from Wizards of the Coast's 3rd Edition Dungeons & Dragons® rules.

^NNote: You must restart the game for changes to take effect.^-~

@1800 = ~Hotkeys On Tooltips~
@1801 = ~When this setting is enabled tooltips will display hotkeys when available.
@1800 = ~Screen Shake on Critical Hit~
@1801 = ~Enabling this setting triggers a screen shake whenever a party member rolls a critical hit in combat.

^NNote: You must restart the game for changes to take effect.^-~

Expand Down
14 changes: 7 additions & 7 deletions HiddenGameplayOptions/languages/english/setup.tra
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
@2 = ~All available options~
@3 = ~Selected options~

@10 = ~Add in-game option "Enable Debug Console"~
@10 = ~Add in-game option "Enable Debug Mode"~
@11 = ~Add in-game option "Enable UI Edit Mode"~
@12 = ~Add in-game option "Show Strrefs"~
@13 = ~Add in-game option "Show trigger icons on tab"~
@14 = ~Add in-game option "Allow Spacebar in Dialogs"~
@15 = ~Add in-game option "Limit druidic spells for Cleric/Ranger"~
@16 = ~Add in-game option "3E Sneak Attack"~
@17 = ~Add in-game option "Critical Hit Screen Shake"~
@18 = ~Add in-game option "Hotkeys On Tooltips"~
@13 = ~Add in-game option "Hotkeys On Tooltips"~
@14 = ~Add in-game option "Show trigger icons on tab"~
@15 = ~Add in-game option "Allow Spacebar in Dialogs"~
@16 = ~Add in-game option "Limit druidic spells for Cleric/Ranger"~
@17 = ~Add in-game option "3E Sneak Attack"~
@18 = ~Add in-game option "Critical Hit Screen Shake"~
@19 = ~Add in-game option "Show extra combat info"~
@20 = ~Add in-game option "Show Game Date and Time on Pause"~
@21 = ~Add in-game option "Disable Area Map Zoom"~
Expand Down
90 changes: 90 additions & 0 deletions HiddenGameplayOptions/languages/german/mod.tra
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
// -*- coding: utf-8 -*-

@1000 = ~Debugmodus~
@1001 = ~Aktiviert diese Option, um Cheat-Tastenkürzel und die Debugkonsole zu nutzen.

Mit dem Tastenkürzel Strg+Leertaste wird die Konsole aktiviert. Folgende Konsolenbefehle sind verfügbar: ^PC:AddGold(zahl)^-, ^PC:CreateItem("name")^-, ^PC:SetCurrentXP(zahl)^-, und viele mehr.

Folgende Cheat-Tastenkürzel sind verfügbar: Strg+Y zum Töten der Kreatur unter dem Mauszeiger, Strg+R zum Heilen und Entfernen von Effekten vom Charakter unter dem Mauszeiger, Strg+J zum Teleportieren der ausgewählten Gruppenmitglieder zur Mauszeigerposition, Strg+T zum Überspringen von einer Stunde Spielzeit, Strg+4 zum Sichtbar machen von interaktiven Bereichen, und viele mehr.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@1100 = ~UI Bearbeitungsmodus~
@1101 = ~Aktiviert diese Option, um die Bearbeitungsfunktionen der Benutzeroberfläche im Spiel nutzen zu können.

F11 aktiviert den UI Bearbeitungsmodus. Während der Modus aktiv ist, könnt ihr Benutzerelemente umherschieben. F5 kann zur Vorschau der UI-Veränderungen genutzt werden, ohne dass das Spiel neu gestartet werden muss. Die TAB-Taste kann genutzt werden, um die Zeilennummer in der UI.MENU des Benutzerelements unter dem Mauszeiger anzuzeigen.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@1200 = ~Strrefs anzeigen~
@1201 = ~Aktiviert diese Option, um die Stringreferenz-Nummern vor den Texten im Spiel anzuzeigen.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@1300 = ~Tastenkürzel in Kurzinfos~
@1301 = ~Aktiviert diese Option, um verfügbare Tastenkürzel in Kurzinfos anzuzeigen.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@1400 = ~Bereichssymbole mit TAB anzeigen~
@1401 = ~Aktiviert diese Option, um bei gedrückter TAB-Taste zusätzlich Symbole für interaktive Regionen zu sehen.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@1500 = ~Leertaste in Dialogen nutzen~
@1501 = ~Aktiviert diese Option, um Gespräche mit der Leertaste fortsetzen zu können.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@1600 = ~Druidenzauber für Kleriker/Waldläufer einschränken~
@1601 = ~Aktiviert diese Option, um die Verfügbarkeit von Druidenzaubern für mehrklassige Kleriker/Waldläufer zu kontrollieren.

Bei aktivierter Option sind Druidenzauber nur bis Stufe 3 verfügbar - die höchste Stufe für Waldläufer. Priesterzauber sind davon nicht betroffen.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@1700 = ~3E Heimlicher Angriff~
@1701 = ~Aktiviert diese Option, um die Fähigkeiten Heimlicher Angriff und Verkrüppelnder Schlag ein- bzw. auszuschalten. Die Regeln für diese Fähigkeiten sind den Dungeons & Dragons®-Regeln 3 von Wizards of the Coast ähnlich.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@1800 = ~Bildschirmwackeln bei kritischen Treffern~
@1801 = ~Wenn diese Option aktiviert ist, wackelt der Bildschirm bei einem kritischen Treffer.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@1900 = ~Zusätzliche Kampfinformationen anzeigen~
@1901 = ~Aktiviert diese Option, um alle Faktoren zu sehen, die einen Trefferwurf beeinflussen.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@2000 = ~Spielzeit und -datum im Pausenmodus anzeigen~
@2001 = ~Aktiviert diese Option, um Spielzeit und -datum anzuzeigen, wenn der Pausenmodus aktiviert wird.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@2100 = ~Ein- und Ausblendanimationen der Übersichtskarte abschalten~
@2101 = ~Aktiviert diese Option, um die Ein- und Ausblendanimationen abzuschalten, die beim Aufrufen und Beenden der Übersichtskarte des Gebiets ausgeführt werden.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@2200 = ~Zoomrichtung des Mausrads umkehren~
@2201 = ~Aktiviert diese Option, um die Richtung des Mausrads beim hinein- oder hinauszoomen umzukehren.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@2300 = ~Spiel pausieren wenn Gebietskarte aktiv ist~
@2301 = ~Wenn diese Option aktiviert ist, wird das Spiel automatisch pausiert, wenn die Übersichtskarte des Gebiets aufgerufen wird.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@2400 = ~Nebel aktivieren~
@2401 = ~Aktiviert diese Option, um Nebeleffekte in den Gebieten anzuzeigen.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

@2500 = ~Videosequenzen deaktivieren~
@2501 = ~Aktiviert diese Option, um Videosequenzen komplett zu deaktivieren.

^NHinweis: Ihr müsst das Spiel neu starten, damit die Änderungen wirksam werden.^-~

29 changes: 29 additions & 0 deletions HiddenGameplayOptions/languages/german/setup.tra
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// -*- coding: us-ascii -*-

@1 = ~Versteckte Spieloptionen installieren~
@2 = ~Alle verfuegbaren Optionen~
@3 = ~Nur ausgewaehlte Optionen~

@10 = ~Spieloption "Debugmodus" hinzufuegen~
@11 = ~Spieloption "UI Bearbeitungsmodus" hinzufuegen~
@12 = ~Spieloption "Strrefs anzeigen" hinzufuegen~
@13 = ~Spieloption "Tastenkuerzel in Kurzinfos" hinzufuegen~
@14 = ~Spieloption "Bereichssymbole mit TAB anzeigen" hinzufuegen~
@15 = ~Spieloption "Leertaste in Dialogen nutzen" hinzufuegen~
@16 = ~Spieloption "Druidenzauber fuer Kleriker/Waldlaeufer einschraenken" hinzufuegen~
@17 = ~Spieloption "3E Heimlicher Angriff" hinzufuegen~
@18 = ~Spieloption "Bildschirmwackeln bei kritischen Treffern" hinzufuegen~
@19 = ~Spieloption "Zusaetzliche Kampfinformationen anzeigen" hinzufuegen~
@20 = ~Spieloption "Spielzeit und -datum im Pausenmodus anzeigen" hinzufuegen~
@21 = ~Spieloption "Ein- und Ausblendanimationen der Gebietskarte abschalten" hinzufuegen~
@22 = ~Spieloption "Zoomrichtung des Mausrads umkehren" hinzufuegen~
@23 = ~Spieloption "Spiel pausieren wenn Gebietskarte aktiv ist" hinzufuegen~
@24 = ~Spieloption "Nebel aktivieren" hinzufuegen~
@25 = ~Spieloption "Videosequenzen deaktivieren" hinzufuegen~

@100 = ~Enhanced Edition muss v2.0 oder hoeher sein.~
@101 = ~LUA-Datei kann nicht bearbeitet werden~
@102 = ~UI.MENU kann nicht bearbeitet werden~
@103 = ~Komponente "Nur ausgewaehlte Optionen" wurde nicht installiert.~
@104 = ~Die Option ist fuer dieses Spiel nicht verfuegbar.~
@105 = ~Diese Option ist bereits im Spiel verfuegbar.~
105 changes: 67 additions & 38 deletions HiddenGameplayOptions/lib/functions.tph
Original file line number Diff line number Diff line change
@@ -1,64 +1,93 @@
// *** Generic UI-related functions ***

/**
* Adds a new string variable definition into available L_xx_YY.LUA resources.
* Adds a new string variable definition into all available L_xx_YY.LUA resources.
* INT_VAR traRef TRA reference number of the string to add.
* STR_VAR varName Name of the variable to add.
* RET success Returns 1 if definition has been added successfully to all available LUA files, 0 otherwise.
*/
DEFINE_ACTION_FUNCTION ADD_LUA_DEFINITION
INT_VAR
traRef = "-1"
STR_VAR
varName = ~~
RET
success
BEGIN
COPY_EXISTING_REGEXP ~L_[a-zA-Z][a-zA-Z]_[a-zA-Z][a-zA-Z]\.LUA~ ~override~
LPF ADD_LUA_VARIABLE INT_VAR traRef = traRef STR_VAR varName = EVAL ~%varName%~ RET success END
BUT_ONLY IF_EXISTS

ACTION_IF (success) BEGIN
// scan additional override folder for LUA files
ACTION_FOR_EACH path IN ~lang/%EE_LANGUAGE%/override~ ~%USER_DIRECTORY%/override~ BEGIN
ACTION_IF (DIRECTORY_EXISTS ~%path%~) BEGIN
ACTION_BASH_FOR ~%path%~ ~L_[a-zA-Z][a-zA-Z]_[a-zA-Z][a-zA-Z]\.LUA~ BEGIN
COPY ~%BASH_FOR_FILESPEC%~ ~%BASH_FOR_FILESPEC%~
LPF ADD_LUA_VARIABLE INT_VAR traRef = traRef STR_VAR varName = EVAL ~%varName%~ RET success END
BUT_ONLY IF_EXISTS
END
END
END
END
END


/**
* Adds a string variable definition into the current LUA file.
*/
DEFINE_PATCH_FUNCTION ADD_LUA_VARIABLE
INT_VAR
traRef = "-1"
STR_VAR
varName = ~~
RET
success
BEGIN
OUTER_SET success = 0
SET success = 0

ACTION_IF (traRef >= 0 AND NOT ~%varName%~ STR_EQ ~~) BEGIN
COPY_EXISTING_REGEXP ~L_[a-zA-Z][a-zA-Z]_[a-zA-Z][a-zA-Z]\.LUA~ ~override~
SET startOfs = INDEX_BUFFER(~uiStrings[ %TAB%%WNL%]*=[ %TAB%%WNL%]*{~)
SET ofs1 = INDEX_BUFFER(~[ %TAB%]*[a-zA-Z_][a-zA-Z0-9_]*[ %TAB%]*=.+,~ startOfs)
SET failed = 0
PATCH_IF (ofs1 < 0) BEGIN
PATCH_IF (traRef >= 0 AND NOT ~%varName%~ STR_EQ ~~) BEGIN
SET startOfs = INDEX_BUFFER(~uiStrings[ %TAB%%WNL%]*=[ %TAB%%WNL%]*{~)
SET ofs1 = INDEX_BUFFER(~[ %TAB%]*[a-zA-Z_][a-zA-Z0-9_]*[ %TAB%]*=.+,~ startOfs)
SET failed = 0
PATCH_IF (ofs1 < 0) BEGIN
SET failed = 1
END
PATCH_IF (NOT failed) BEGIN
SET ofs2 = INDEX_BUFFER(~[%WNL%]~ ofs1)
PATCH_IF (ofs2 < ofs1) BEGIN
SET failed = 1
END
PATCH_IF (NOT failed) BEGIN
SET ofs2 = INDEX_BUFFER(~[%WNL%]~ ofs1)
PATCH_IF (ofs2 < ofs1) BEGIN
SET failed = 1
END
END
END

PATCH_IF (NOT failed) BEGIN
// determining variable definition type
READ_ASCII ofs1 curLine (ofs2 - ofs1)
INNER_PATCH ~%curLine%~ BEGIN
SET v = INDEX_BUFFER(~[ %TAB%]*=[ %TAB%]*"[^"]+"~)
SET isStrref = (v < 0) ? 1 : 0
END
PATCH_IF (NOT failed) BEGIN
// determining variable definition type
READ_ASCII ofs1 curLine (ofs2 - ofs1)
INNER_PATCH ~%curLine%~ BEGIN
SET v = INDEX_BUFFER(~[ %TAB%]*=[ %TAB%]*"[^"]+"~)
SET isStrref = (v < 0) ? 1 : 0
END

PATCH_IF (isStrref) BEGIN
SET number = RESOLVE_STR_REF((AT traRef))
TEXT_SPRINT line ~%TAB%%varName% = %number%,%LNL%~
END ELSE BEGIN
SPRINT text (AT traRef)
INNER_PATCH_SAVE text ~%text%~ BEGIN
REPLACE_TEXTUALLY ~%MNL%?%LNL%~ ~\n~ // line break -> symbolic line break
REPLACE_TEXTUALLY ~\([^\\]\)"~ ~\1\"~ // double-quotes must be escaped
REPLACE_TEXTUALLY ~\^[0-9A-Z$]\([^^]+\)\^-~ ~\1~ // just a precaution: older games don't appear to support colored text in options menu yet
END
TEXT_SPRINT line ~%TAB%%varName% = "%text%",%LNL%~
PATCH_IF (isStrref) BEGIN
SET number = RESOLVE_STR_REF((AT traRef))
TEXT_SPRINT line ~%TAB%%varName% = %number%,%LNL%~
END ELSE BEGIN
SPRINT text (AT traRef)
INNER_PATCH_SAVE text ~%text%~ BEGIN
REPLACE_TEXTUALLY ~%MNL%?%LNL%~ ~\n~ // line break -> symbolic line break
REPLACE_TEXTUALLY ~\([^\\]\)"~ ~\1\"~ // double-quotes must be escaped
REPLACE_TEXTUALLY ~\^[0-9A-Z$]\([^^]+\)\^-~ ~\1~ // just a precaution: older games don't appear to support colored text in options menu yet
END
TEXT_SPRINT line ~%TAB%%varName% = "%text%",%LNL%~
END

// inserting text definition
SET strlen = STRING_LENGTH ~%line%~
INSERT_BYTES ofs1 strlen
WRITE_ASCIIE ofs1 ~%line%~
// inserting text definition
SET strlen = STRING_LENGTH ~%line%~
INSERT_BYTES ofs1 strlen
WRITE_ASCIIE ofs1 ~%line%~

SET success = 1
END
SET success = 1
END
END
END

Expand Down
Loading

0 comments on commit 8f98131

Please sign in to comment.