DISCLAIMER USE THESE UTILITIES AT YOUR OWN RISK! BE SAFE! BACK UP ALL SAVED GAMES FIRST! Panzer General Saved Game Editor, Version 2.00 04/18/95 If you have not done so yet, you are strongly advised to read this file. It could save you much frustration. CONTENTS 1. INSTALLING AND RUNNING PZG-EDIT 2. BASIC OPERATION A. LOADING A GAME B. KEY COMMANDS C. EDITING UNIT ATTRIBUTES D. EDITING UNIT TYPES E. RENAMING UNITS F. EDITING TRANSPORTS G. EDITING PRESTIGE H. EDITING GAME TURN I. EDITING GAME DATE J. EDITING TRANSPORT POOL POINTS K. EXITING THE EDITOR 3. PBEM GAMES 4. MAKEPBEM UTILITY 5. CHANGES SINCE VERSION 1.00 6. PLEASE REPORT THIS CODE MESSAGE FROM VERSION 1.00 to 1.03 7. FINAL WORD 1. INSTALLING AND RUNNING PZG-EDIT To install pzg-edit, pkunzip the pkzip file in the directory [drive:\path]\saves directory, where [drive:\path] is where you installed Panzer General. There are four files installed: pzg-edit.exe, the actual editor pzg-edit.dat, a data file required by the editor pzg-edit.txt, this document file makepbem.exe, a utility that converts a game into a pbem game This editor version requires the support of a data file called "pzg-edit.dat". This file must be located in the same directory as pzg-edit.exe. The first action the editor will take is to search for this file; if it is not found the editor will give an appropriate error message and return to the c:\> prompt. There is nothing to edit in this file. Any changes made will most likely cause problems. Pzg-edit will only allow you to edit files stored in the current default directory. You must switch to the directory containing the saved game files before editing. The saved game files are located in directory [drive:\path]\saves". 2. BASIC OPERATION A. LOADING A GAME Switch to the directory containing the editor and the saved game files. Type "pzg-edit" to run the program. A list of all saved games will appear. The number next to each game is the slot number the game is saved in. Each file will list details about the game, such as the scenario being played, the game type (campaign, scenario or two player), the label given to the game, and the date and time the file was saved. (This screen alone is a much easier way to check what you have saved in each slot compared to using the Panzer General game interface .) Maneuver the prompt up and down using the up and down arrow keys. When the correct game is highlighted, press enter and the game is loaded for editing. Pressing "Q" or "ESC" exits the program from the opening menu. PBEM files are listed in red and cannot be edited. The prompt will "jump" over any PBEM files. B. KEY COMMANDS The following key commands are used: up/down arrow: moves the prompt up or down left/right arrow: moves the prompt left or right page up/ page down: scrolls up/down 15 units at a time home/end: goes to the first/last unit ESC: exits to the previous menu (or quits if in unit window) enter: selects the prompted unit for editing 0-9: enter digits for a new value backspace: erase digits already entered B: toggles blinking/non-blinking prompt M: enters a sub menu that allows game conditions to change R: allows the prompted unit to be renamed Q: brings up the "Quit?" prompt C. EDITING UNIT ATTRIBUTES After a file is selected to edit, all units are listed by name on the left side of the screen. First all Axis units are listed, followed by all Allied units. Even units that were in the game at one time but have been destroyed are still listed, colored in red. To help keep track of your position in the list a counter appears in the red help bar which displays the number of the currently prompted unit, total number of units and percent position in the list. To the right of the unit name are transports, experience, strength, fuel, ammo, entrenchment, moves, x position and y position. This all appears in the red help bar near the bottom of the screen if you forget what the three letter abbreviations at the top of the column represent. Any of these values can be changed. Select the unit you wish to edit. For all except transports, you edit the attribute by moving the prompt to the attribute, pressing enter, entering the value you wish with the 0-9 and backspace keys and pressing enter when complete. While you are entering numbers, the allowed range appears in the red help bar. If the entered number is outside the allowed range you will get a beep when you press enter, and you will not be able to leave the edit window until the value is valid. If you don't enter a number or erase all entered numbers with the backspace key, you will get the original number back (no changes made.) Be aware of the following points: strength: Strength is a little tricky. First, the basics. All units stay in the saved game file for good. Once a unit is destroyed its strength is listed as 0, and it is listed in red. By simply changing its strength value to a positive number, it will reappear in the game with the new strength! (I call this "reincarnation".) As soon as you press enter, the corresponding row immediately changes to cyan to reflect the new status as active. Or conversely, by simply changing a strength value to 0, any unit can be removed! The entire row will immediately turn red to reflect the new status as destroyed. Now the fun part. You aren't limited to a strength of 10 or even 15! The editor allows you to enter a value up to 255, but before you get greedy, :) a value too large will cause the whole computer to lock up when you try to load the file. From my experimentation, I have found this critical value to be around 40 to 50. I left the ability to enter values as large as 255 to encourage experimentation (report back to me if you do!) When you enter a strength larger than 15, but too low to crash, the computer uses this value when computing combat losses, but the actual digits on the unit on the game map are not the true values. For example, if I make a tank strength 25, the map still shows it as 10. When I lose 5 strength, the "magnifying glass/look at units" window and the bottom information bar give the strength as 20, but the map icon shows 5. The unit will still be allowed to expend all 25 strength points though! Now even more fun: Campaign games saved during the deployment phase causes undeployed units to be stored in x position 255, y position 255. The two 255 values signify to Panzer General that the unit is to be deployed. However, before you can deploy units, Panzer General places non zero strength units on the map in the (x,y) position specified for that unit. If you altered the strength of an undeployed unit to a non zero value, (all undeployed units are saved at strength 0), Panzer General will attempt to place this unit at (255,255). No matter which map is being played on, (255,255) does not exist, and the computer will hang when trying to place the altered unit. The point is that you can't alter the strength of undeployed units. You will get an error message from the editor if you try. This should only apply to campaign games saved during the actual deployment phase. Finally, when reincarnating a unit you must be careful what x and y coordinates it will be reborn at. If another unit is now occupying the location, you will have two units at the same location, and Panzer General may behave erratically or even crash when it tries to handle this unexpected situation. moves: entering any value will cause the moved status to be reset, meaning that even if you moved a unit on this turn, you can move it again after you change this value. x and y position: The x and y positions are the same as those displayed in the top information bar when you move the cursor in the game map window. The upper left corner of the map is listed as (1,0) (x position is 1, y position is 0) By changing these values, you can move any unit to any location! Here you have to pay attention to what you are doing! The editor will automatically restrict your x and y input values to those actually on the map, so you cannot enter a value that would place a unit off the map. However, there are no further restrictions on what you can place where! It sounds great, but what I mean is that there are no safeguards that prevent you from putting a battleship in the center of a landmass, or a tank in the middle of the ocean! This causes no problems, but the "misplaced" unit cannot move from its new location. (Use the editor to move it again.) To watch for this would involve deciphering each byte of the map graphics structure and hardcoding each one into the editor; a LOT more work than I was willing to do! So the basic point is don't move units at random; have a clear destination in mind, and move it there. An interesting experiment: what happens if you put two units in the same hex?!?! My editor won't stop you from doing it, so be aware of what you are doing! The following was contributed by Thomas Grennefors: "If you place two units on the same hex, you get to move one first and then the other. No crash. If you place an infantry in water it won't be in a troop transport ship. But it is still possible to move it!" D. EDITING UNIT TYPES My favorite! You can now change unit types from one to the other. By change, I mean you can make a 39 Wehr Inf into a tank, bomber, battleship, whatever. Move the prompt to the name of the unit. Press enter. A list of countries of the same allegiance as the original unit appears. Select the country you want the new unit to be from with the up/down arrow keys and press enter. A list of all units from that country will appear, listed in the same order as they appear in the PzG manual for convenience. Units not listed in the manual appear after then ones that are in the manual. Select the one you wish and press enter, or press "escape" to exit without making any changes. The unit will now be changed. The unit will be renamed according to the type of unit in normal PzG fashion; any custom name the original unit possessed will be overwritten. Since axis core units cannot be ships, you cannot specify ships for axis units with a prefix of "80th" or less. (The editor will sense this automatically; ships won't even appear as choices.) Any allied unit can be a ship. When you change a unit type, be aware the following changes are made: The new unit will have a strength of 0. You must reactivate it with a non-zero strength. Experience is set to 0. Any transports are lost. (More on transports below.) Kills are reset to 0. Fuel, ammo and moves are set to the maximum possible values for the new unit type. Remember, it's pointless to make battleships in land-only scenarios, (but you can do it and shell with them anyway!) aircraft will not have airbases in Poland, (but you can "pzg-edit" in more fuel instead), etc. Don't forget to change the location if you change from say a tank to a submarine; the tank will be on a land hex; you'll want the sub in the ocean (at least I would, but I don't know your playing style.) In other words, make planned changes. You will probably have problems if you make random changes. E. RENAMING UNITS Due to many requests, I finally gave in and included the ability to rename units, even though names can be changed through the PzG game already. Simply press "R" and the prompted unit is highlighted, no matter which attribute the prompt is on (fuel, ammo, experience, etc.) and the new name can be entered. You are limited to 18 characters. Any ASCII character including extended characters can be used except for control characters (ASCII values less than 32 cannot be used.) Escape exits without changes, enter makes change, backspace erases last character. F. EDITING TRANSPORTS Transport types and loading status can be changed. The second column is trn, short for transport. The values "l", "s", and/or "a" may appear in this column standing for land, sea or air transport present. No value indicates no transport is present. A capital letter indicates the unit is loaded on that transport. Ex: "lS-" indicates a unit with land transport loaded on a sea transport. "-A-" represents a unit on an air transport. "l--" indicates land transport, unloaded. "---" indicates no transports. Pressing enter brings up more information, and prompts to change the unit. Escape exits. Points to be aware of: -Any air or sea transport will automatically be loaded. -Selecting an air transport automatically removes a land transport and vice versa. -Any transport change will cause the strength of the unit to be zero. Fuel will be adjusted to the maximum allowed by the new transport. Also, certain units cannot fit on any type of transport, such as ships, aircraft, etc. If you try to edit the transport of a ship you will get a message stating that you cannot place the unit on a transport. G. EDITING PRESTIGE Prestige is accessible through the "More" menu by pressing the "M" key. Select and enter values as normal. "M" or "ESC" will return you to the unit list window. Be aware that prestige has a maximum value of 65535. If you enter a value close to this and then during normal gameplay you add enough additional prestige to go over 65535, it will wrap around to 0. H. EDITING GAME TURN You can edit the number of turns remaining and the number of turns in a scenario. The effects are obvious; you get extra time (or less if desired) to complete the scenario, up to 255 turns. Some scenarios give prestige on certain turns to one player. I do not know what the effect of changing the turns remaining will have on this. Be aware of the possibility of unforeseen occurrences. I. EDITING GAME DATE This seems to be pointless, but this has a much bigger effect than it appears to at first glance. The effect is that different units will be available for purchase as in the game manual, and the weather (if turned on) will change to the appropriate conditions (ie assault Moscow in the summer, etc.) I even added code such that if you have a scenario with snow on the ground and snow falling and you change the month to between April and September, all snow will instantly "melt" and you will be left in the rain and mud! The allowed dates are Jan 1, 1930 to Dec 31, 1945. Choosing a date near 1930 means that no new units are available. You cannot purchase new units, only reinforce what you already own; an interesting twist to the game. Likewise, a date near 1945 means that any unit can be purchased if the maximum number of units will not be exceeded and prestige permits. Changing the date only affects new purchases; units which already exist can take replacements even if the date indicates that the unit type should not be available. However, once the unit is destroyed it is gone for good unless the game date reaches the date the unit becomes available. (Or you can reincarnate it with the editor.) J. EDITING TRANSPORT POOL POINTS You can also edit transport pool points. The sum of transport pool points and the number of transports in use must be less than 255. The editor will automatically adjust these values upon exit to ensure this condition is met. For example, The allied side is using 40 sea transports in D-Day. A new value for allied sea transports is entered as 230. The sum of transports would be 230+40 or 270 which is greater than 255., The editor will automatically change the 230 to 215 when you exit; when you start the game you will only have a sea pool of 215, not the entered 230. K. EXITING THE EDITOR To quit, press the "Q" or "Esc" key and follow the prompts in the help window. If you made changes, you will be asked if you want to save them. You cannot use the "Q" key when you are in a red edit window. When you quit, the editor will check to see if you performed any actions that would cause your zone of sighting to change. Such actions include reincarnating or killing a unit, moving a unit or altering the type or transport type/load status. If you did, the map will be updated. First all visible hexes are calculated. Then all enemy units in those hexes are made visible. Note that this applies to submarines as well; if you want a hidden submarine, keep it out of the areas where a normal unit would be visible. Note that this is the same as recomputing spotted units at the beginning of a turn; units spotted by units in a previous ;location are considered invisible. Example: An Axis and an Allied unit are adjacent. The Axis unit moves to a new location and the Allied unit is now no longer in the spotting range of any Axis units. The game is saved and edited at this point. A unit somewhere else on the map is changed to strength 0. When the new spotting zone is calculated, this Allied unit will be considered to be hidden from view. When the game is loaded, it will not be visible, just as you would expect if the turn just began with the units in their current positions. 3. PBEM GAMES I decided to disable the ability to edit PBEM games. You cannot select a PBEM file from the opening menu. This system is not foolproof: if someone knows how to hex-edit, he should be able to find the PBEM marker bytes in the game file and change them so that the editor's PBEM test will not detect the PBEM status. BE WARNED!!! I added a few lines of code that will check for this dirty little cheating trick. If you try it, the editor will make a few "extra" changes when you exit and I think you will be unhappy with the result. So don't even try it. 4. MAKEPBEM UTILITY This extra utility is intended to be a substitute for the missing ability to edit PBEM games. You can use it to design custom PBEM games. To operate, load a scenario (NOT a campaign game!) in one or two player mode, but do not choose PBEM. Save it in one of the ten slots. (If you wish to customize this scenario with pzg-edit, do it now.) When you are finished, go to the directory where the file is to be converted. Use the following syntax: MAKEPBEM X where X is the slot number the to be converted game is saved in. For example, MAKEPBEM 10 converts the game stored in slot 10. The editor will give the following error messages as required: Game is a campaign game. (Campaign games cannot be converted.) Game is already PBEM. (This is obvious.) Slot is empty. (This is obvious too.) Slot X successfully converted. (Again obvious.) Then load the game slot and play. When your turn ends you will be prompted for a password and you will save the game in one of the two PBEM slots as normal. Proceed as you normally would from here on. Remember, once you convert a game, you can no longer load it in the editor! 5. CHANGES SINCE VERSION 1.00 a. version 1.01 2/8/95 -The data verification routine no longer flags x and y position values of 255 (signifying undeployed units) as being unexpected data in campaign scenarios saved during deployment phase. (Thanks Keith Wedinger!) b. version 1.02 2/13/95 -The data verification routine no longer flags an error when reading core unit attributes from campaign games saved in between scenarios. (Thanks Gary Lewis!) -Several minor cosmetic changes were made, the most noticeable being the slot number and user specified label of the game currently being edited are now displayed below the "unit position counter" during edit mode. -Several very minor program "tweaks" were made. -Numerous additions were made to this text file. (pg-edit.txt) c. version 1.03 2/16/95 -For units with short names, Panzer General sometimes stores several meaningless extra characters after the unit name in the saved game file. (I suspect the producers of Panzer General did not intend for this to happen.) These extra characters are no longer displayed. (Thanks Oliver Hellwig!) -Several additions were made to this text file. (pg-edit.txt) d. version 2.00 4/18/96 -Numerous changes were made, including a completely new engine. The new file is over twice the size of the original, plus an extra utility to convert normal games to PBEM is included. -A much more detailed opening menu was added. -The ability to edit unit types was added. -Editing game dates was added. -Editing turns was added. -Editing transports was added. -Units no longer alternate; first all axis units are displayed, then all allied units. -Spotting is now updated when killing, reincarnating, moving and changing unit types and transports. (This cures the invisible unit problem.) -Renaming units was added. -Editing transport pool points was added. -The quit and save prompts default to "Y" if "enter" is pressed; some German keyboards had problems with entering "Y" to quit and save changes. Simply pressing enter is the same as entering "Y". -The "B" key toggles the prompt between blinking and non-blinking. -Editing the number of moves will now restore a unit to "unmoved" status; ie if you change the number of moves, you can move the unit again on the same turn even if it was moved previously. 6. PLEASE REPORT THIS CODE MESSAGE FROM VERSION 1.00 to 1.03 This message is caused when for some reason PzG stores the X and Y location of computer controlled inactive units as being greater than the allowed values; ie. too large to fit on the map. If you tried to "reincarnate" this unit, PzG will lock up when it attempts to place it on a non existent map hex. (I have no idea why it does this either; it is fairly rare; I never saw it during testing.) For example, on the Poland map which measures 15 x 16, a computer controlled unit that is destroyed may end up being stored in location (31,10)... not a location on the game map. Trying to "reincarnate" this unit would cause PzG to lockup when it tries to place the unit on the map. Since this unit is considered destroyed, the unit is gone for all practical game purposes and the unit is no longer accessible to the game. However, pg-edit gives you access to destroyed units as well. Since I never noticed this occur during testing (it is actually quite unusual) I didn't program the editor for the situation specifically. However I did program it to verify all data for "correctness"; units that are not in actual map hexes fail my data verification routine and flag the error code you are reporting. To further insure the game data safety, this unit that caused the problem is inaccessible and never even appears on the screen. The data is verified sequentially; any game data after the unexpected data is inaccessible and will not appear. The codes are mainly to keep unforeseen circumstances like this (or others due to patches, whatever) from causing problems. Interestingly, this error "propagates" through campaign games; if it appears in one scenario, it will be likely to occur later in the campaign in a different scenario. And I have no idea why. As in the documentation to version 1.00 to 1.03, the error codes are not a "crash" or problem. They are to let me know that pg-edit found data that I had not expected. Your data is safe; the code indicates that the data was reacted to as expected. You can use the editor with the codes without any problems, but not all of the units in the game will appear. The condition that flagged the error is now handled properly. If you try to alter the strength of a 0 strength unit when X or Y is off the map, a pop up window will alert you to the fact. (Remember than X and Y values of 255 are normal.) You will not be able to "reincarnate" this unit until you adjust the strength to the proper values. (Proper values are given in the pop up window.) It will be obvious when it happens. 7. FINAL WORD First off, I wish to offer thank to the many responses I received to versions 1.00 to 1.03. Unfortunately I received so many responses I could not answer them all. I tried to at first, but if I kept it up I would have never finished this version. (It took over a year already.) Even If I did not answer, your response was read, and thank you for your time. Feel free to e-mail me with any comments, complaints, suggestions, observations, etc. that you may have about this editor. If I use your suggestion I'll give you credit. As long as you use pg-edit to make planned modifications you should have no problems, provided you take into account the restraints listed. However, if you simply open a saved game and begin making changes at random, you will most likely run into problems. Obviously, it is recommended that you plan your changes before making them. In either case, back up your games before modifying them! Be safe! If you have a problem, please e-mail me! If you can send a copy of the saved game file that caused the bug, it would be very helpful! I'd even e-mail the upgrade to you when I fix it! You are free to distribute this editor freely, provided both the text, data and two executable files are distributed together, and they are unaltered in any form. This editor was tested with both disk and CD-ROM versions 1.2 of Panzer General under both DOS 6.2 and OS/2 Warp. There was no testing under Windows 95. I assume no responsibility for any data loss or file corruption resulting from the use of this editor. As always, back up all data before modifying it! I have found the best way is to designate slot 10 as a backup slot, and save a game twice prior to editing; once in slot 10, and once in a slot from 1 to 9. Should any problems arise, simply load slot 10. Remember, there are several conditions that can cause an edited game to lock up your computer. There may be other undiscovered combinations! Please back up your games first! If you discover one of these conditions that is not already listed, please let me know! The more specific you can be as to the cause of the problem, the better! I hope you have fun. I like having a few extra battleships on my side to crush the British navy in Norway. Enjoy. Steven C. Schultz sschultz@crl.com