CODING USAGE AND VARIABLE DESCRIPTIONS FOR AGGRESSOR PROGRAM ~die roll= 1 -> auto hit ~nuked unit still exerts ZOC ~Tec typ: "decon" spc fnc listing configuration is designed to be primarily by reassignment of "data" strings in init() - user option selections are then based on the assigned choices structure: ~Agr (like Hulk?) has no "front end" (macro level/ strategic operations, which then spawn micro level/ tactical conflicts), so no oneRnd() routine is employed; but others' combat choices still/ likewise occur at the highest program level (var x1) ie. oneRnd() equates to pik/ oprUnt(), the use of which makes provision for changes in allies' control - the term "turn" is used for combat opponents' (altercation) alternation, rather than "round" z1$[] 1-dimensional array ('vector' of n elm#s [0..n]): string(buffer) elements sec$: fmt= (1 chr ea) SecCtl SecWgt ObsEn [sid1 #unts] ..[sidCnt #unts] ',' - SecCtl coding= '0' (no controller) '1'..'[# sides]' (controlled by that side#) - note user- modifiable map setup at sidHex elm in z1$[] UntAct: coding= 2 or 3 digit integer; n%10 is number of hexes unit has moved this turn (1..4= #hexes moved; 5..8= #hexes moved w +4 noting moving unit halted by enemy unit ZOC shift): with a total field value of Dug=0 (Def/ dug in), Imm=9 (immobile: Rng 0 mov tried) - n/10 is action option taken by unit: Mov=0, Amb=1, Ast=2, Atk=3, Fir=4, Lch=5, Sup=6, Rpl=7, Stk=8, Rcn=9, Dcn=10, Pts=11 (these are also the atkTyp vals, with the addition of Ada=12 - air defense artillery hit on ranged Airbase atk, Ctm=13 contamination hit on unit in CBR hex, Hit=14 reduction of unit's Rng 1st or Str (typically Spt unit giving supply), & Pas=15 unit which is still capable takes no further options) UntObs: coding= 1 digit integer; observed status= unobserved= Inv=0, observed this turn= Obs=1, observed last turn but not this turn= Fix=2, observed but unidentified= Unk=9 Partisan contact criterion= choose to use Partisan Contact special ability (ie. began turn in enemy territory, not moved qualifications): probability of accumulating a contact is 6-(unit's attack strength) or less on die used. Attack strength for Missile unit=4, Tech unit=1. Strength is basic, not adjusted. die- pattern hex directional coding: spiral/ zig- zag arrangement is essentially equivalent to NEWS (N=1 E=2 W=3 S=4 in square) pattern, since it produces the same relative positioning, just rotated one step d8 (or alt die) use opt when adj hit score=0 (ie. 4-4): if die roll=1, roll again & 2nd die roll >6 = miss (hit % 1/11+) nxtAly() avoidance of nxtUnt() calls: ~checking of endGam() conditions in conjunction with automatic criteria in nxtUnt() - nxtUnt() endGam() if either of 2 sides' forces eliminated, Usr- to- Usr or Usr- to- Mac (or, when only 1 side remains) macPik() process: When using postponement of moves until after other actions performed as well as using preemption of movement for units in another's way, if preempting moves aren't allowed out of order (during other actions) then the program can hang when the cycle loop point unit for postponement is neither the preempted nor preempting unit and the preempting unit is prior to the preempted unit in the untGrp listing (the preempting unit's individual move was postponed prior to the preempted unit, which happens to be the nxtUnt() picked after the preempting unit's move is subsequently postponed). ~unt gets marked Dug if it has no tgt and fails % for Rpl/Sup/Mov.. (untOpt=Nil) ~UntAct flg for unt that takes no action (untOpt=Nil) is X*Hit, which is deducted from all affected units at end of macPik() ~unt trying Pts contact was attacked (hurt) by adj en -> withdraw? or engage as aggressor? ~chk for sectors not in obs rng of any fr unt (priority to own side)