
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



