SacredCMS 2020-04-03
New Life of the game Sacred Underworld
Version 13 (2020-12-17)

9) Version 13 (2020-12-17)

13.1) Extension help added.

13.2) Updates in language codes.

13.3) Updates to the language modules (corrections and additions).

13.4) Corrected the display of abilities on the "COMBAT ARTS" tab.

13.5) Added new console command lotto.

13.6) Code optimization mmG.dll.

13.7) Corrections to save descriptions.

13.8) Two latches for the Alt key have been introduced.

13.9) Completely redesigned list of objects.

13.10) Added a window for configuring the list of objects.

13.11) Changes in time management.

13.12) Added slogan output.

13.13) Changed start image.

13.14) Fixed distortion of player names in multiplayer game.

13.15) Introduced a customizable display of the names of graves.

13.16) Removed cursor glow.

13.17) Invulnerability in online game (corrections).

13.18) Transparency of the fog of war (corrections and additions).

13.19) Killing in one blow (corrections).

13.20) Changes to the hotkeys.

13.21) Changing and adding interaction objects (MouseOver objects).

13.22) Added multi-step and smooth scaling of the game (EXPERIMENT).

13.23) Description of installation via Web downloader.

13.1) Extension help added.

Added new window with description of hotkeys and commands of mmG extension console. The window opens/hides with the Ctrl+H hotkey. At the top of the window there are three toggle buttons for selecting help content:

"Hotkeys" button toggles to the description of the game hotkeys added by the extension;

"Hotkeys (system mode)" button switches to the description of the system mode hotkeys (Np.Del);

"Console commands" button switches to the brief description of console commands (in English only); at the end of the command descriptions there are item numbers in the ChangeLog.doc file (ChangeLog_eng.doc) with the detailed description of these commands (or dashes, if there are none).

13.2) Updates in language codes.

Added new window describing hotkeys and commands a) Since the original game language was German, the VC language code is actually an abbreviation for Volksrepublik China (German) (and not, as previously thought, an abbreviation for Creole). This is confirmed by the latest research of the game's code, in which only for the VC (Chinese) and JP (Japanese) languages additional manipulations are made. Because of this, the language module vc_test.res has been renamed vc_global.res and is now identical to the language module zh_global.res (see also paras 3.1, 4.1 and 8.1).

b) A new hypothetical translation language has been introduced Bulgarian. The language codes for it are BG, BL and BUL (the language module is bg_test.res).

c) Redesigned Web downloader to download new language module files (vc_global.res and bg_test.res).

13.3) Updates to the language modules (corrections and additions).

a) In the Russian language module (ru_global.res) were made, the so-called typographical edits.

Namely: herringbone quotation marks "", a long dash , ellipsis (one character) , apostrophe , the letter "" (many, alas, ignored).

In addition, the texts of statues, magic stones (and their self-titles), and many graves have been significantly changed to match the German original. As it turned out, during the translation into English, and from it into Russian, changes were made that significantly distorted the original meaning of the texts (and with it, the developers' intentions). So, for example, now we know where Aarnum IV and Cosmin VIII are buried, some new points about history of Ankaria were clarified

Some names have been translated and other names and texts have been corrected.

b) In all language modules some object names were corrected (or added).

For example: changed "Sarcophagus", "Door", "Gate" etc.; added "Spider Skin", "Fishes", "Dryad Box", "Mushroom Chest" etc.

c) In all language modules the texts of some graves have been updated. For example, such as "Seven" or "Hills" to more interesting

d) Changed Japanese language module, previously named jp_test.res, now renamed to jp_global.res. The new module is based on the Japanese language module created by members of the Japanese community. Lines for NL support have been added to it. The Web downloader has also been changed to read the jp_global.res file.

e) The Hungarian language module has been changed which was previously called hu_test.res and is now renamed hu_global.res. The new module is based on the Hungarian language module created by members of the Hungarian community, kindly provided by Zerisius. Since the module was originally for the 1.8.46 version of the game, lines from the English language module version 2.28 have been added. In addition, lines for NL support have been added. Also changed the Web downloader to read the file hu_global.res.

IMPORTANT: For correct display of texts in NL it is necessary to install necessary language modules again.

13.4) Corrected the display of abilities on the "COMBAT ARTS" tab.

Removed artifact in the form of a small band to the left of the circles with ability icons.

This bar appeared due to incorrect calculation of the coordinates of the picture, which represents a circular frame around the ability icons.

13.5) Added new console command lotto.

The console command lotto enables/disables the Master Lotto cheat mode. This mode allows you to get any rune for free. Format of command lotto N, where N is an optional parameter, can take values 09 and (numbers define for which class of heroes runes will be generated: 0 for the current hero; 1 seraph; 2 gladiator; 3 battle mage; 4 dark elf; 5 wood elf; 6, 7 vampireess; 8 dwarf; 9 demon; dash - mode off). If number N is not set, runes will be generated for the current hero. Initially the command is disabled by configuration file parameter NL_CHEAT_LOTTO : 0.

13.6) Code optimization mmG.dll.

Due to optimization of the extension code (as well as the Ecx library), the mmG.dll file has shrunk from 5.5 Mb to 1.4 Mb.

13.7) Corrections to save descriptions.

Save descriptions are now properly displayed for both original game saves (ANSI description) and expansion saves (Unicode description). To distinguish these descriptions from each other, the extension writes 0xFEFF (BOM) character at the beginning of the description line. The presence/absence of this character determines the encoding type (Unicode/ANSI).

13.8) Two latches for the Alt key have been introduced.

a) The Ctrl+I hotkey enables/disables the display of the Alt caption.

b) Hotkey Ctrl+J turns on/off the display of icons of emotions (actions).

If you press the Ctrl+I Alt key, it will be shown always, no matter if you press the Alt key or not.

The same applies to the icons of the emotions (actions) when enabled by pressing the Ctrl+J key.

Note 1. If the Alt key is enabled, then pressing the Alt key adds emotion (action) icons to the caption.

On the contrary, if emotion (action) icons are enabled, then pressing Alt adds Alt caption to them.

If both Alt caption and emotion (action) icons are enabled, then pressing the Alt key does not perform any action.

Note 2. The Ctrl+J hotkey was introduced a long time ago, but its action has not been described anywhere before.

13.9) Completely redesigned list of objects.

a) The object list (formerly called Pickup List) is now divided into six thematic lists, which are switched by means of bookmarks.

b) The bookmarks have different colors. The saturation of bookmarks colors depends on time of day (at night, morning and evening the saturation is less, so the bookmarks are not so striking).

c) The bookmarks show the number of objects currently in the corresponding list. If there are no objects, a long dash is drawn instead of the number. If the number of objects required to be added to the list exceeds 64, only 64 objects will be added, and a plus sign will be put after their number. Gold is taken as one object (regardless of the number of piles of gold).

d) Contents of the lists:

1st list (pink) NPCs, horses, the post with the announcement "Wanted!", the hero's personal chest, gold;

2nd list (green) set sets, unique, rare and quest items, musical instruments;

3rd list (purple) runes, elixirs, scrolls;

4th list (white) containers (barrels, chests, boxes, sarcophagi, vases, etc.), environment objects (statues, rune stones, sundials, pointers, etc.);

5th list (blue) common and magical objects;

6th list (brown) graves in cemeteries, grave of Sir Marcus, other single graves.

e) When you select a line in the list with the mouse, a pointer is drawn to the object corresponding to that list position. The pointer is either a small square or a bounding rectangle (can be selected in the settings window). The pointer can also have a line going from the hero to the object (there's the option to show it). For gold you draw as many pointers as there are piles of gold. You can disable the drawing of pointers with the object list settings window.

f) The tabs of the object list can be controlled with a mouse click. It is possible to use F1F6 keys to switch between bookmarks. For this purpose hotkey Ctrl+S enables (and disables) the additional mode, activation of which is shown by a yellow line above the bookmarks.

g) Removed the possibility to move to objects using the list. In this regard, removed the parameter NL_GUI_PICKUPLIST_TELEPORT from the configuration file Settings.cfg and its description from the file settings_cfg.xls.

h) In connection with renaming the Pickup List to the object list, all the parameters of the configuration file were also changed. The PICKUPLIST part of the names was replaced by OBJLIST.

13.10) Added a window for configuring the list of objects.

The object list setup window is shown/hidden with the Ctrl+Shift+O hotkey.

In this window it is possible to make settings of the list.

Synchronization radio buttons allow switching the corresponding tabs on the object list.

When you exit the game, the changes are saved in the configuration file Settings.cfg in the corresponding parameters.

For details about the settings of the list of objects see the file settings_cfg.xls (parameters NL_GUI_OBJLIST_xxx).

13.11) Changes in time management.

a) The format of the console command time has been extended. Now its full format is: time H M S | x N | y N | stop

time H M S time setting, where H hours, M minutes, S seconds (M and S are optional parameters);

time x N time acceleration, N acceleration factor (time will be accelerated by N times);

time y N time deceleration, N deceleration coefficient (time will be slowed down by N times);

time stop stop/start of clock (trigger command).

b) Acceleration (symbol ↑), deceleration (symbol ↓) are displayed irrespective of the "Current date and time" panel display. The stop of the clock (red circle, to the right of the compass) is drawn only when the mentioned panel is hidden. If the panel is displayed, however, the inscription on the panel becomes red when the clock stops. The acceleration and deceleration are only displayed when their coefficient is greater than one, and the stop of the clock if it is actually stopped. Stopping/starting the clock is still possible with the Ctrl+T hotkey.

13.12) Added slogan output.

Now after starting a new game or after reading a game entry, the NL motto "New Life of the game Sacred Underworld" is displayed. It is automatically removed after 2.5 seconds. You can enable/disable the motto using the NL_GUI_SLOGAN parameter in the configuration file. The color of the motto text is set with the NL_GUI_SLOGAN_COLOR parameter in the RRGGBB format, and the font is set with the NL_GUI_SLOGAN_FONT parameter (values 17). The motto can also be output using the console command slogan.

13.13) Changed start image.

The LoadingUW01.bmp startup screen file has been changed, using unused Ascaron content.

Correspondingly, changes were made in the Web downloader to download this file.

The LoadingUW01.bmp file is written to the PAK folder and overwrites the original file. The original file already exists as a copy (Loadgame.bmp) and can be copied back at any time!

13.14) Fixed distortion of player names in multiplayer game.

Fixed a bug with the distortion of the names of players in the online game.

The essence of it was that when switching the language modules, the real names of the players were replaced by names like "player 1", "player 2" and so on. The problem was solved by calling the function cNetworkManager::PlayerDataName, which dynamically replaces the strings with identifiers 9984 9999 in the selected language module with the real names of network players.

13.15) Introduced a customizable display of the names of graves.

Added parameter NL_GUI_GRAVE_NAME_FORMAT to the configuration file, the string value of which determines the output format of grave names.

Format commands: N grave number; R and r symbols for Ankaria and Underworld: 'A' or 'U' (for R) and 'a' or 'u' (for r). The rest of the characters are passed as is. If the value of the parameter is an empty string, "Grave" will just be output. The format is initially set to " Nr" in the configuration file (see below, first example).


format: " Nr", output: Grave 54a, Grave 127u

format: "R-N", output: Grave A-12, Grave U-73

format: " N", output: Grave 21, Grave 212

13.16) Removed cursor glow.

a) As you know, the cursor is lit when the currently active spell can be cast. This is checked with the cCreature::CheckSpellLaunchable function. The cMouse::Render function uses the information about whether a spell can be applied to turn on the glow. Changing just one byte in the game code made it possible to turn off the cursor glow.

b) In order to still see when the currently active spell can be applied, we decided to make the frame of that spell glow. That is, when the active spell can be applied, its frame will be highlighted in a different color.

13.17) Invulnerability in online game (corrections).

Fixed an unfortunate bug where players who entered the online game, second, third, etc., were vulnerable, even though invulnerability mode (Ctrl+L) was enabled.

13.18) Transparency of the fog of war (corrections and additions).

a) Corrected the drawing of the transparency of the fog of war on the mini-map. As before, the parameter NL_FOG_ALPHA is responsible for the transparency of the fog of war. But now its value can be between 0 and 15. A value of 0 means no fog at all; a value of 15 means completely opaque fog. The values 115 set the degree of fog transparency the higher the value, the thicker the fog. The default value is 8 (average transparency). For comparison, see par. 11.4.

b) Added console command fog N, where N is transparency factor (015), which promptly sets the transparency of fog.

c) The value of the transparency of the fog of war on exit is stored in the NL_FOG_ALPHA parameter of the configuration file.

13.19) Killing in one blow (corrections).

Fixed a ridiculous bug in the implementation of the ability to kill enemies in one blow, which was that this opportunity applies not only to the hero, but also to the enemies. For example, in the northern part of the Forest of Dryads (near the exit of the cave, where the merchant and combo wizard are located) spirits of the forest killed both merchant and combo wizard.

13.20) Changes to the hotkeys.

a) All game hotkeys are now pressed either directly or with the Ctrl key.

b) All hotkeys to call NL setup windows are pressed with the Ctrl+Shift keys. The same keys are used to switch the sound language (Ctrl+Shift+D) and change the position of the static overview map (Ctrl+Shift+U).

c) In connection with these changes, the hotkey to open the window of configuring additional GUI elements (see Section 9.3) now is Ctrl+Shift+G.

d) You can always check what hotkeys exist in the extension help (Ctrl+H).

e) The hotkeys description file HotKeys.xls was also changed.

13.21) Changing and adding interaction objects (MouseOver objects).

a) MouseOver object, this is an object of interaction of the game mouse cursor with a certain area of the game screen. Above this area the cursor becomes in the form of a hand. Since the interaction area is superimposed (most often) on the images of objects in the game world, the player gets an impression of interacting with these objects. In the game world, these are statues (ordinary and sacred), rune stones, sundials, wells, magical shelters, tombs, etc. Special note that the hand cursor appears not only over MouseOver objects, but also over real 3D-objects, transition areas (teleports, portals, entrances-exits), over some special tiles

b) Fixed script of two sacred statues (Embalming Forest and Pirate's Island).

c) Added new sacred statues: the Statue of the Sorceress (Ruins of the temple of Shaddar Nur, working, but not yet available); Statue of the elf (Glumur); Statues of the dark elf (Zhurag-Nar, 4 working, but 3 not yet available); statues of dwarves (many).

d) Added several new wells and magical shelters.

e) New interaction objects: Sacred Well and Sacred Cache almost like a well and a magical refuge, but have one unique property. Their location gravitates towards monasteries, temples and holy places.

f) Corrected a large number of incorrect graphic configuration of tombs (especially in the Underworld).

g) Added: several single graves; new cemetery, shrine and crypt. All tombs with legible epitaphs (from the reserve of tombs number 145a155a, which due to errors in the startcode.bin scripts were not added to the game).

h) The MouseOver.bin script, located in the ..\World folder, which is downloaded using the Web downloader (the necessary checkbox is checked), is responsible for changing and adding interaction objects.


13.22) Added multi-step and smooth scaling of the game.

These scaling modes are EXPERIMENTAL.

This is due to the fact that although we managed to get rid of the noise of the textures of objects at fractional scales (see Section 13.22.1), it was not possible to avoid the new problems that have appeared so far, alas. Such as: flickering of objects; disconnection of objects from the background (in some areas); overlapping of parts of objects when you turn on their semitransparency when the hero is behind them

In this connection we introduced a possibility of switching all of the following features on/off globally with one parameter NL_GUI_ZOOM_GLOBAL in configuration file settings.cfg. Thus, if NL_GUI_ZOOM_GLOBAL is set to 1, all new zoom-related features are available.

13.22.1) Definitions: scale factor, zoomX, fractional scale.

New notions are introduced:

scale factor a real number that characterizes the value of the scale of the game.

Thus, the three initial game scales correspond to the following scale coefficients: 1.00 normal scale (1:1), 2.00 maximum camera distance (the smallest scale, 1:2), 0.50 maximum camera approach (the largest scale, 2:1).

zoomX an integer, the zoom factor multiplied by 100.

fractional scale the scale different from the three original game scales.

13.22.2) Multistage and smooth scales, rows of scales.

Added the ability to multistep and smoothly change the scale (by pre-selected rows of scales).

Six rows of scales are added to the game:

a: 3-step 2.00, 1.00, 0.50 (original);

b: 5-step 2.00, 1.50, 1.00, 0.50, 0.33;

c: 7 steps 2.25, 2.00, 1.50, 1.00, 0.75, 0.50, 0.33;

d: 9-step 2.25, 2.00, 1.75, 1.50, 1.25, 1.00, 0.75, 0.50, 0.33 (default);

e: 8-step 2.00, 1.00, 0.75, 0.50, 0.37, 0.27, 0.18, 0.10 (large scale range);

f: smooth from 2.25 to 0.33 (30 steps on average).

It is possible to switch operatively to this or that row of scales with the help of radio-buttons of the window "Expanded scale", which is called with the help of the hot key Ctrl+Shift+R. The NL_GUI_ZOOM_SCALE parameter of the configuration file defines the current series of scales. Its value can be 04 (for appropriate rows) and 5 for smooth scale. The default is 9-step row d (parameter value is 3).

13.22.3) Added scale factor indicator.

This indicator shows the current value of the scale factor in the lower left corner of the game screen next to the text and audio language indicator. You can show/hide it with the corresponding button of the "Advanced scale" window (Ctrl+Shift+R). The NL_GUI_ZOOM_INDICATOR parameter of the configuration file is responsible for showing/hiding the scale factor indicator (1 and 0 respectively).

13.22.4) Added NL_GUI_ZOOM_SAVE parameter to save/load scale.

a) In the configuration file Settings.cfg added parameter NL_GUI_ZOOM_SAVE responsible for saving and loading the scale value.

Its format is:


where A is zoomX to save/load scale (0 or 1).

b) If A is 1, then after loading the game the zoom Z will be saved (regardless of the zoom factor written in the save file GAMEnn.PAK) and when closing the game the zoomX will be saved.

c) Z is an integer scale factor multiplied by 100 (zoomX).

d) When loading the game:

if the mode of smooth change of scale is not enabled and if the scale (divided by 100) is not equal to any of the coefficients of the current range of scales (see clause 13.22.2), then the closest suitable value from this range will be selected;

if the mode of smooth change of scale is switched on, the read scale will be set.

If the scale is not within the coefficient range of the current scale series, the coefficient equal to 2.00 will be selected (the greatest removal in the original game), regardless of whether the soft scaling mode is on or off.

e) When exiting the game, if there was an activation of save/load scale (value A = 1), the current scale value (the current scale factor multiplied by 100) will be written in Z. You can change the saving/loading scale behavior with the corresponding button in the "Advanced Scale" window.

Note: so, for example, a scale factor of 1.50 corresponds to a Z value of 150; for 2.00 200; for 0.83 83, etc.

13.23) Description of installation via Web downloader.

a) IMPORTANT: download the Web downloader itself: SacredNL.exe (due to changes in it).

b) Download via Web downloader: mmG.dll, MouseOver.bin, Settings.cfg, ChangeLog.doc, Setting_NL.rtf, HotKeys.xls and LoadingUW01.bmp (optional).

c) IMPORTANT: download the necessary language modules (due to changes).

To do this, select the installation mode Custom (free choice of items to install).