forked from Atlantis-PBEM/Atlantis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG_4
655 lines (639 loc) · 39 KB
/
CHANGELOG_4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
Changes from 4.0.10h -> 4.0.10i
--------------------------------------------------
-- Fix bug where completed buildings weren't adding protection in battle.
-- Made a small change to battle output requested by the author of
atlaclient.
-- Fixed a bug in building where using an enter order on the same turn as
a build caused you to be in the wrong building to build and thus not
actually build.
-- Fixed a bug in construct gate which made it successful 100% of the time
at level 1, instead of 20% at level 1 up to 100% at level 5.
-- made all town pop functions use CITY_POP instead of local constants
-- fixed a bug where the 'rural' hex population was taken into account
when markets were set up, but not when market items were considered
for their activity and effect on town growth.
-- Markets: all except food set their amount to zero below the minimum
pop, and the minimum amount (1/6th of total amount for trade items and
normal items on demand) is used as soon as an item becomes available.
-- the minimum amount of economically relevant items is set to at least
1/6th the total (this affects games in progress).
-- added 'staggered' markets: for more than one items of a type, an
increasing offset is added to the minimum population of that item's
market (so item 1 will appear at 1000+, item 2 at 1300+, item 3 at
1600+ for instance).
-- Fixed bug in @ENDTURN.
-- Fixed bug with skill-based maintanence costs.
-- Cleaned up includes to compile without warnings under gcc 3.2
Changes from 4.0.10g -> 4.0.10h
--------------------------------------------------
-- Fixed a bug which caused the first mage casting Earth Lore in a
region to recieve 2*level less silver than he should.
-- Fixed a bug where an army where all casualties were healed were
prevented from further moves or attacks. Full healing should mean
no penalties.
-- Fixed a bug in output of rules when dealing with skill-based
maintainence.
-- Fixed a bug dealing with the cost of non-skilled units versus skilled
units when in a maintenance mode which requires skill based upkeep.
Units will now pay the maximum of the skill based upkeep or the normal
upkeep. This means that GM's should probably *lower* the normal upkeep
to something more reasonable than 10/20 if they are using the skill
based upkeep unless they JUST want to penalize higher skilled leaders.
Changes from 4.0.10f -> 4.0.10g
--------------------------------------------------
-- Changed USE_PREPARE slightly. There is now a 'strict' and a 'normal'
setting for USE_PREPARE. Under strict, the READY command MUST be
used or the unit will not use any battle items. Under normal, the
unit will fall back on the battle items list.
Changes from 4.0.10e -> 4.0.10f
--------------------------------------------------
-- Fixed bug in practice code where non-leader units would keep trying
to practice and generate errors even after they were at max level.
Changes from 4.0.10d -> 4.0.10e
--------------------------------------------------
-- Fixed missing parenthesis in calculating rename cost of cities.
-- Fixed setup error in city markets (wasn't obeying the directive
CITY_MARKET_NORMAL_AMT in one case)
-- Fixed bug in AString::value() where an excessively large number
could be used to overflow an integer into a negative and thus
cause some very wierd effects (such as creating items out of
nothing)
-- Fixed a bug where a faction could get more apprentices than they
should be allowed.
-- Fixed bug in tax being a month-long order and issuing the 'tax'
command giving an error about work overwriting and then the unit
working instead of taxing.
-- Fixed bug where autotax didn't work if DEFAULT_WORK_ORDER was
disabled and the unit was submitted as part of an orderset but had
blank orders (only when TAX_PILLAGE_MONTHLONG was set).
Changes from 4.0.10c -> 4.0.10d
--------------------------------------------------
-- Fixed a coredump when a region affecting spell was used on a z level
that was out of range. Bad range-check.. bad!
-- Fixed misleading damage messages on monsters.
-- Fixed a bug where gluttony became a sin (under skill starvation).
-- Fixed rounding error in pillaging
Changes from 4.0.10b -> 4.0.10c
--------------------------------------------------
-- Fixed probability of town generation bug from Jan's patch.
-- Fixed bug in movement costs when WEATHER_EXISTS was 0.
-- Added 'Spoils: none' line to indecisive battles to make ACB happier
-- Fixed segfault in skill starvation code.
Changes from 4.0.10a -> 4.0.10b
--------------------------------------------------
-- Fixed bug with extremely large worlds and more than 10000 units
-- Fixed bug with small worlds/levels where a town was less than 9
hexes from *both* poles AND LESS_ARTIC_TOWNS was enabled. This
caused very large negative/positive numbers for wages and such.
-- Fixed a bug in random number generation when getrandom was called
on a negative number (found while fixing the one above)
-- Fixed a potential crash when evicting someone who had already
left the building.
-- Fixed a couple of typos in the generated rules.
Changes from 4.0.10 -> 4.0.10a
--------------------------------------------------
-- Fixed bug in conquest map generation caused by terrain change patch
-- Fixed potential namespace collision on 'fill' in template.cpp
Changes from 4.0.9 -> 4.0.10
--------------------------------------------------
-- Fixed a bug where weapon length affected ranged weapons.
-- Fixed a bug where at world generation time, one too few gates was
generated, possibly resulting in a starting city with no gate.
-- Fixed a bug where battle items which were not usable (due to having
a combat spell set, or due to not being a mage and having a mage-only
item) being checked for use caused the items to be lost to the unit.
-- Fixed bug where weapon length affected damage spells as well.
-- Fixed bug which caused AMTS protection vs RING to fail when the # of
AMTS was identical to the number of men in the unit.
-- Fixed two small display glitch bugs as reported by Jason Cortina.
-- Fixed riding bonus for archers bug. Added new weapontype flags of
RIDINGBONUS and RIDINGBONUSDEFENSE [Implemented by Tom Alsen]
-- Implemented no spoils from summoned monsters which are released for
some number of turns. Added gamedefs of MONSTER_NO_SPOILS (how many
turns a summoned monster has no spoils, -1 for infinity) and
MONSTER_SPOILS_RECOVERY (how many turns after the NO_SPOILS turns
until it is equivalent to a non-summoned monster). [Implemented
by Tom Alsen, who recommends values of 3 and 9 respectively]
-- Added NUM_ATTACKS_HALF_SKILL. [Implemented by Tom Alsen, who
recommends using this for DBOW and RUNE, and NUM_ATTACKS_HALF_SKILL+1
for SBOW].
-- Added gamedef MAX_ASSASSIN_FREE_ATTACKS. [Implemented by Tom Alsen
who recommends a value of 2]. If set, this will limit the number of
attacks in the free round off assassination to that value.
-- Added gamedef RELEASE_MONSTERS. If set, enables 'GIVE 0 <num>
<monster>' for any monster and will create wandering monsters from
the ones released or ones that are lost control of (this makes dragons
eagles and wolves similar to demons and such if this gamedef is
enabled). [Implemented by Tom Alsen]
-- Added gamedef CHECK_MONSTER_CONTROL_MID_TURN to check for demons
breaking free and zombie decay in mid-turn (before move) rather than
at the end of move. [Implemented by Tom Alsen]. This makes it
harder to have mages sending in directed balrog missiles [for
instance] if it is set.
-- Added WEATHER_LORE as a castable spell. Use CAST Weather_Lore
[REGION <x> <y>] to predict the weather for 3,6 and 12 months at
levels 1,3 and 5 respectively. Range is same as Farsight -
4*level*level. [Implemented by Tom Alsen]
-- Made spell range checking more generic. There are now methods for
pre- and post-processing spell ranges. Teleport, Farsight and
Weather Lore now use this mechanism [Implemented by Tom Alsen]
-- Added CLEAR_SKIES_REGION gamedef to allow Clear Skies to be cast as
a ranged spell at range 2*level*level. [Implemented by Tom Alsen].
-- Boats which have only monster/creatures on board will now sink.
[no more leaving skeleton crews around [pun intended]]
-- Unit with no physical weapons are assumed to have 'SHORT' weapons.
-- Added alternative rout types as suggested and implemented by Karl
Castle <[email protected]>. The new gamedef which controls
this is called ARMY_ROUT. Default is ARMY_ROUT_FIGURES which behaves
identically to what we have now. Other options are
ARMY_ROUT_HITS_INDIVIDUAL and ARMY_ROUT_HITS_FIGURE. These two are
very similar in that they are both based on total hits in a unit.
The difference is that ARMY_ROUT_HITS_INDIVIDUAL tracks each hitpoint
individually and the army routs if the total damage done is more
than 1/2 the total number of hits. This means (say you have a dragon
and a mage (for a total of 51 hits)) that the army will rout if the
dragon takes 26 hits even though neither unit might actually have
died. The other option, ARMY_ROUT_HITS_FIGURE only subtracts the hits
from the total when the figure actually is killed, so in the example
of 1 mage and 1 dragon, the battle would continue until the dragon
was dead, regardless of when (or if) the mage was killed.
-- Added RangeType setup to make ranges customizable. This should make
the Lacandon spells fully implementable.
-- The CLEAR_SKIES castable at range stuff is now doable by setting the
rangeIndex on S_CLEAR_SKIES to RANGE_CLEAR_SKIES and then modifying
the values for RANGE_CLEAR_SKIES.
-- Fixed planar scaling so that all levels were scaled to what they should
be, not always *2 for levels other than surface.
-- Fixed a bug which caused a crash in the orders checker if you had a
bogus form order and did NOT have either an ENDFORM of #END order in
your orderset after that bogus form.
-- Fixed a bug which caused a crash if you built a road in a direction
where there was no adjacent hex.
-- Fixed a bug in unit drowning when they left a boat.
-- Fixed a bug in combat where the rules and code differed. Code now
follows the rules.
-- Fixed a bug in display of info about shield effects generated by items.
-- Fixed bug in forlist during assassination which caused assassinations
to stop if the person you assassinated was directly below you in the
unit list in the object.
-- Tom Alsen added code to Blitzgame allowing monsters to regenerate hits
during combat. I have merged this code into the main base under a
configuration option.
-- Patch for multiple types of taxing behaviour controlling who is
allowed to tax. Patch submitted by Stephen Baillie.
-- Fixed a bug in BUY/SELL where two buys or sells of the same item would
cause the second to fail with an error.
-- Fixed another instance of the missing ENDFORM order which caused a
crash.
-- Added EVICT order as submitted by Peter Rayner
<[email protected]> with slight modifications.
-- Fixed bugs in combat where riding skill was being counted twice in
defence, and ranged weapons were using COMB skill for attack strength.
-- Fixed bug in EVICT code that caused a segmentation fault
-- Added SKILL_PRACTISE_AMOUNT and associated code all over the place
to allow skills to improve with practice. A unit may improve at
most one skill per month, and will only improve skills they already
have. Using a skill counts as practising its prerequisites if they
need to be impoved before the skill can advance further. I suggest
a value of 5 for SKILL_PRACTISE_AMOUNT.
-- Fixed a bug where CanSee was not taking account of MIND skill.
-- Modified combat acquisition algorithm for special attacks so that
they will always find an appropriate target if one exists.
-- Fixed a bug where unmounted units were being matched in the effect
matching code for MOUNTIF.
-- Cleaned up a small section of rules for clarity.
-- Fixed up a bug with two sell orders for the same item which did
insufficient checking that you could sell both quantities. This
bug existed for a while but never showed up because of the bug
with multiple sells of the same item which I fixed a few weeks ago.
-- Changed MOVE and SAIL so that if the unit runs out of movement
points, the remaining moves are added to the front of the TURN
queue. This allows caravans using @TURN to work properly despite
weather changing move costs. Also fixed a bug where a single
@TURN command would be lost because of a pointer being reused.
-- Modified TURN/ENDTURN processing to cope with arbitrarily deep
TURN and FORM nesting, and cleaned up the error handling.
-- Moved the correlation between faction points and what they give
you from being hardcoded in extra.cpp to an array in rules.cpp.
-- Small fix so that all items (even non-give) can actually be discarded.
-- Added check that there is actually an active unit when parsing TURN
and ENDTURN orders. Fixes segfault.
-- Fixed bugs in orders checker where it was trying to do a
unit->Error() where it should have been doing ParseError() since
unit isn't valid in the orders checker.
-- Applied patch from Jan Rietema <[email protected]> providing a large
amount more configurability in the world generation process.
-- Changed template generation to understand the terrain types again
after the previous fix.
-- Added gamedefs to control the minimum and maximum amounts of food
that a unit requires for maintenance, and the value of food for
maintenance.
-- Added a processed food item (FOOD), cooking skill and Create Food
spell to go with the possibility of requiring food for upkeep.
Made food buyable in all town markets.
-- Made it so that shield items didn't need to be PREPARED in a game with
USE_PREPARE_COMMAND set and verified that non-prepared items got
returned.
-- Fixed display of hits/regen to show unit number and creature in unit
which took the damage.
-- Fixed bug in magic studying in protected buildings under LIMITED_MAGES
case as reported by Vitauts Stochka <[email protected]>
-- Fixed empty object bug reported by Vitauts Stochka <[email protected]>
-- Added unit weight/capacity patch from Ales Privetivy <[email protected]>
-- Added patch from Jan Rietema <[email protected]> to conditionally
prevent ships from sailing through single-hex land-masses.
-- Fixed a bug in the cross-level teleport stuff (if allowed) which caused
the penalty to be a flat value rather than per difference in level.
-- Fixed a bug in teleport and such which allowed entry into and out of
the Abyss (and viewing it via farsight and such). Bad JT, no biscuit.
Thanks AZ for pointing it out.
Changes from 4.0.8 -> 4.0.9
--------------------------------------------------
-- Added a gamedef to allow markets to always show advanced items, not
solely when a unit which has them shows up in the city.
-- Added the 'prepare' command from Lacandon with a gamedef to enable
it's use.
-- Added two gamedef variables to control when a monster can advance
rather than just move.
-- Added a gamedef to define (for the automatic rules generation) if
a game has the 'special email commands' (#create, #times, #rumor).
-- Moved the generation of unlimited items in start cities under
'START_CITIES_START_UNLIMITED' gamedef. This allows correct rules
generation and more GM options.
-- Added automatic generation of rules files from the gamedefs and
internal tables.
-- Split armor-piercing attacks into armor-piercing, energy, spirit and
weather. Armor can now protect differently against these. I'm not sure
the original new combat system is mentioned in this change log, but the
split is an addition to that. Patch submitted by Tom Alsen
-- Added WEAPON [itemlist] and ARMOR [itemlist] commands, which allow
a unit to set a preferred weapon and armor list. This is enabled
by the USE_WEAPON_ARMOR_COMMAND gamedef. Patch submitted by Tom
Alsen <[email protected]>
-- Added PROPORTIONAL_AMTS_USAGE flag. When set, if an assassin targets
a unit with more men than amulets of true seeing, there is a chance
that he picks a man with an AMTS, and the attempt is foiled. When
this gamedef is unset, the attempt will always succeed. Patch
submitted by Tom Alsen <[email protected]>.
-- New rule: Assassins with RINGs of invisibility cannot get amulets of
true seeing in spoils (otherwise the assassination would have been
prevented) [This is needed for the PROPORTIONAL_AMTS_USAGE to work,
but also applies when that gamedef is clear.] Patch submitted by
Tom Alsen <[email protected]>.
-- Fixed a hang when attempting to write report files which already exist.
It now just silently doesn't write them.
-- Added 'EXCHANGE' order which allows two units to trade items
regardless of faction stances. This is safe (unlike GIVE) since both
units must enter complimentary items. For example, if unit 12221 and
15333 wanted to trade 10 LBOW for 1000 SILV, unit 15333 would enter
'EXCHANGE 12221 1000 SILV 10 LBOW' and unit 12221 would enter
'EXCHANGE 15333 10 LBOW 1000 SILV'. Since the quantity and the items
must match or the trade doesn't occur, this is safe even for neutral
or unfriendly stanced factions. This patch was submitted by Nick
Hoggard <[email protected]>.
-- Added a patch by Nick Hoggard <[email protected]> implementing
the 'TURN' order. This order allows pre-specification of orders for
turns in the future as well as constructing loops of orders based on
turns. See the rules for details.
-- Added the implementation of 'GIVE ALL <item class>'. The original
implementation was done by Tom Alsen <[email protected]> for Blitzgame
and was merged over.
-- Fixed BUILD HELP so that the unit you are helping must consider you
at least friendly before it will allow you to help build the structure.
The reason for this is to prevent unauthorized entry into a building.
-- Added message distinguishing move failure due to overburdened from
move failure due to no more movement points.
-- Redid ParseItem a bit (made it three different functions) to allow
specific features to GM and push some of the error checking down
into the function. This hopefully fixes a bug in Ceran II where
someone was trying to buy goblins (which are a race there as well as
a monster) and failing because it was finding the monster before the
race in the item list. ParseGiveableItem is now used by BUY, SELL,
GIVE, and EXCHANGE. ParseEnabledItem is used by the rest of the orders
processing routines, and ParseAllItems is used by the GM 'player.in'
file routines which give items to players. ParseEnabled and ParseAll
can still get confused by items with the same name, though in most
of the cases where that currently could be a problem it won't be (as
both of the conflicting items would be invalid in that spot anyway).
-- When a unit is formed, it is now tagged with the forming faction and
that is a valid alias for the rest of the turn. This is to prevent
the ambiguity which could crop up when dealing with units which were
formed and given during the same turn.
-- Fixed the swim code to give a Swims message and work with flight
over water. Changed item giving of dying units to not cause other
units to drown.
-- Fixed niggle in the swim/move code so that when a unit attempts to
move over water when not in a structure, the ability to move is
calculated based on swim capacity, not walking capacity. This is
a change asked for by Pete Christie. It also makes sense, and is
one step closer to having swimming be an actual movement mode in
its own right.
-- Fixed a bug where spoils calculation could wrap causing spoils
earned to be a negative value of an object.
-- Fixed a bug where a disabled skill would be shown in the information
about a race which had that skill as a specialty.
-- Did a bit of grubbing around in the old atlantisproject dejanews
archives and added a few ideas from there to the TODO list.
-- Started looking at some of the older atlantisdev postings [pre my
joining the list] and found a couple of good ideas there too. The
big problem is how long it would take me to completely go through
that archive. Anyone want to take that on and summarize for me
ideas/extensions that have been proposed so they can be added to the
todo list to at least consider? [This would probably also help to
attach atlantisdev post articles to various todo list items, which
has been requested].
-- Fixed a bug where ADVANCE orders were combined together during the
orders checker, but not during the actual game run.
-- Added GIVE XXX ALL ITEMS which gives them everything, *including men*
in one fell swoop!
-- Fixed a bug where roads weren't used to calculate move to allow armies
to help adjacent hexes.
Changes from 4.0.7 -> 4.0.8
--------------------------------------------------
-- Added the BUILD HELP <unit> syntax to allow two units to collaborate
on creating an object even during the first turn it is being built.
-- Added BUY ALL and SELL ALL commands. SELL ALL will attempt to sell
all of an item that you can. BUY ALL will attempt to buy as many of
an item as you can.
-- Modified the 'Item:' players.in command to give the unit information
about the new item they own if they haven't already seen it.
-- Fixed a bug in setting a unit as MAGE when given skills via the GM
option.
-- Fixed a bug where the game editor could give out disabled items.
-- Fixed a bug in the game editor to mark a unit as having owned an item.
-- Fixed a bug in the save code which caused items to be shown every turn
instead of just the first turn
-- Fixed where FORCE_SHIELD versus ranged attacks got broken in the
rewrite of the combat system.
-- Fixed bug. A unit with wolves/eagles/dragons which LOST the
ability to control them (either via having the mage assassinated or
via the mage FORGETing the skill) now loses the creatures.
-- Added ability to control a factions starting location and whether or
no the 'traditional' starting unit is created to the players.in file.
-- Added more objects and stuff for Ceran
-- Fixed bug which allowed two guard units to spring up in a city.
-- Fixed problems with fileio.cpp on win32
-- RE-FIXED bug with city guards
-- Fixed a bug where a disabled item/skill/object was still be accepted
by the checker.
-- Applied modified version of maximum mages per building patch submitted
by Paul Mehrer <[email protected]>
-- Fixed a bug in the EASIER_UNDERWORLD code pointed out by
Stephen Baillie ([email protected]) which caused it to only work on
level 0-2 inclusive.
-- Fixed a bug in IMPROVED_FARSIGHT code which was pointed out by Stephen
Baillie ([email protected]) which caused it give odd results if
multiple mages from the same faction with different skills cast farsight
on the same hex during a turn.
-- Fixed bug in BUILD HELP which caused an infinite loop when the helper
was already in the building to be helped with.
-- Fixed bug in NOSPOILS code which caused an infinite loop if no army
unit would accept spoils.
-- Fixed another bug in the NOSPOILS code. NOSPOILS was supposed to still
allow 0 weight and weight < walking capacity items to be aquired. It
wasn't.
-- Fixed a bug where WITHDRAW was not being noted as an invalid order if
the ALLOW_WITHDRAW gamedef was not set.
-- Fixed a bug with GM_REPORT which caused it not to work except on turn 1.
-- Added transit patch submitted by Stephen Baillie <[email protected]>.
This patch enables the GM to show hex information to units which pass
through a hex but do not end the turn there. The bits of information
which are shown are completely selectable from an enumeration in
gamedefs.h and default to the current behaviour (no reports).
WARNING: In an attempt to prevent clients from breaking, if you show
reports but do not show a specific piece of information (ie, wages or
entertainment or resources) the hex report will appear as if the hex
has NONE of that type of information (ie, wages 0, or Products: none).
So, be careful when turning this on as it COULD give your players a
false sense of having accurate data when they do not!
-- Added the 'harp' item created by Ceran II
-- Did a lot of work to handle spell damages and effects in a
customizable manner.
-- Moved the makefiles out of the subdirectories and coallesced them into
one makefile at the top level which can be used to build the various
games. By default the 'standard' game is built.
-- Removed some of the 'XXX' (fixme) comments from the code. Still more
to do.
-- Reworked the NOSPOILS code based on the patch submitted by Tom Alsen
<[email protected]>. The new syntax is SPOILS [NONE|ALL|WALK|FLY|RIDE].
Spoils NONE forces a unit to pick up only items with weight 0. Spoils
ALL is the default and allows a unit to carry any spoils. The other
modes will only allow a unit to pick up a given spoil if that item has
a capacity in that mode at least equal to it's weight.
Changes from 4.0.6 -> 4.0.7
--------------------------------------------------
-- Added TAX_PILLAGE_MONTH_LONG gamedef. If this is set to one, then
taxing and pillaging are month-long orders. The AUTOTAX flag, when
this is set, is still used, but now what it means is that a unit
with this flag will tax if a) no other orders have been given for
the unit and b) it is capable of taxing. (IE, the autotax flag
makes the units default order TAX instead of WORK)
-- Fixed bug that caused monster generation to hang if unable to generate
monsters because all of them were disabled.
-- Fixed a typo which had storm giants and cloud giants having the same tag
-- Fixed up the code slightly so that if you defined NEXUS_IS_CITY it
actually gives the nexus some sort of items and population.
-- Fixed up the code slightly so that starting citys aren't created if you
set TOWNS_EXIST to false.
-- Fixed up the code so that gates aren't created and gate lore is disabled
if GATES_EXIST is set to false.
-- Fixed bug where large maps were coring all over themselves due to
a stack smash. Stupid bug.
-- Fixed another bug where regions got trashed when you managed (say
during world creation) to create more than 10000 units in a turn.
-- Balanced lances a bit.
-- Now handles ultra-small worlds gracefully (either by failing to
create the exit, or promoting some location). World creation down to
8x8 now works.
-- Added gamedef 'MULTI_HEX_NEXUS'. If this is set, then on world creation
you will be asked how many nexus hexes there should be. The nexus
will then be a connected strip of x hexes wide and 1 deep. Each nexus
hex will connect to 4 cities and to the two adjacent nexus hexes.
New players will be started in a random nexus hex. This does hinder
alliances somewhat as may be harder for them to get to the same place
in order to move to the same starting city.
-- Fixed bug in combat where if all of the attackers unit in a hex were
set avoid, the attacker could (in contradiction to the rules) issue
an attack against an ally.
-- Fixed bug where FORCE Shield did not protect agaisnt bow attacks.
Force shield changed to protect against all ranged weapon attacks.
-- Fixed bug which caused GCC v3.0 to not compile atlantis
-- Moved TODO list to it's own file
-- Modified the mount selection code so that if you had a region that
only allows riding mounts and you have a mount that has ride but not
fly it still gets correctly selected.
-- If a region only allows riding but not flying mounts (non currently)
then a flying mount used in that region will be restricted to the
maxRiding bonus defined in the MountType structure.
-- Fixed bug in ForgetSkill where a unit which was an Apprentice and
forgot any skill which made them an apprentice (only MANIPULATION
currently) they didn't get unmarked as an apprentice. (Thanks to
Ben Lloyd for pointing that out)
-- Fixed a bug in GIVE ALL EXCEPT which caused a wierdness when you
tried to give more than you had.
-- Fixed bug with CanStudy which showed disabled skills.
-- Fixed bug with DBOWs taking down force shields. Only *spells* take
down shields.
-- Updated skillshows with the patch provided by Andrew Zhilenko which
-- Patched ADVANCE battle bugs reported by Andrew Zhilenko
makes the logic in there cleaner.
-- Added Georg Gottschalks 'volcano' terrain. It's a bit odd in that
it requires flying to get into (move cost of 6) BUT mounts within it
only get a max of riding mounts bonus. (IE, a WING gets a max 3 riding
bonus in it due to trecherous terrain)
-- Tweaked the quantities of Admantium by default.
-- Added Javelin weapon designed by Terho T. Uotila
<[email protected]>, who wanted a cheap ranged weapon.
-- Various small fixes provided by Ben Lloyd
-- Fixed WITHDRAW <item> to be the same as WITHDRAW 1 <item>
-- Some other small fixes from Ben Lloyd. <[email protected]>
-- Increased the number of possible products per hex from 5 to 7.
-- Added Georg Gottschalks underdeep and multi-level underworld and gems.
-- Removed a whole bunch of unused ifdefs from the code
-- Added new combat system from Tom Alsen
-- Reorganized terrain data structures to make future extension of number
of resources, lairs, races easier.
-- Changed lair percent to be percent of terrain type which has lair
rather than percent chance for each type of lair.
-- Reorganized as many of the rest of the datastructures as I could get
my hands on to do similar stuff to what I did to the terrain data
structs.
-- Added some fields in the item structures to handle crafting items by
magic. Down with special cases. Some work still needs to be done
here.
-- Made road decay into more generic building decay and extended the
building definition structure to handle it.
-- Fixed a long standing bug. The rules state that a guarding unit will
prevent ALL units of any faction other than the owner from pillaging.
The code up until now had been implementing it as any unit of a
nuetral or worse stance faction. This has been fixed.
-- Added item and object descriptions. Redid skill descriptions.
-- Made horse/wagon generic rather than hardcoded.
-- Removed the special case of earthquakes not affecting MFORTRESS. This
is now handled by a NOEARTHQUAKE flags on the object in the ObjectDefs
structure.
-- Added skillflag SLOWSTUDY. If you modify a skill to have this flag,
a month of study will only produce 15 days of learning in the skill.
This is cumulative with non-tower penalty for magic skills over level 2.
-- Fixed a bug which could potentially result in GUARD_ADVANCE being left
set on a unit across turns.
-- Fixed a bug in calculating planar distances around the east/west
boundary.
-- Added some 'commands' allowable in the Players.in file which allow the
GM to give a faction custom-made units, or to give existing units of
that faction various skills or items (or to take them away). It also
allows the GM to force some orders to be executed by specific units.
-- Added a new itemflag NOMARKET, which prevents an item from ever showing
up in a city market (either wanted or for sale).
-- Added code to allow magic items into the markets on world creation. All
magic items currently are NOMARKET, so there will by default be no
change.
-- Moved some items from NORMAL to ADVANCED (lance and pike) and moved
some items from MAGIC to ADVANCED (and added NOMARKET) (admantium items,
improved mithril armor, super bows).
-- Modified Axes from having Hammers boost their production to having
Axes boost their production by default. This makes them consistant with
other items made from wood rather than being the exception.
-- Added (disabled) resource enhancing buildings for all resources that
didn't yet have one.
Changes from 4.0.5 -> 4.0.6
--------------------------------------------------
-- Added FIND ALL command supplied by Tzarg (Tom Alsen)
-- Reworked enabling/disabling of items to better preserve old feel.
-- Various small bugfixes.
-- Added worldname to the gamedefs structure (used for creating the
names for the nexus and oceans as well as some spell texts)
-- Added NEXUS_GATE gamedef to allow a one-way gate directly out of the
nexus via gate lore. There is no actual gate so people cannot in
fact return to the nexus once leaving.
-- Added code to make a starting city into just a rich city (with
limited items available) if the city guards are taken out when
SAFE_START_CITIES is false. Once this occurs the unlimited goods
are gone for good.
-- Added MORE_PROFITABLE_TRADE_GOODS option to gamedefs. If this is
enabled the selling price for a trade good in a city ranges from 60-114
and the price a city will pay ranges from 150-210. If it is not
enabled, the price ranges from 60-90 for selling and from 90-120 for
buying. This option is not on by default.
-- Added quite a few options to help Georg Gottschalk with Ceran
-- Added more ceran things to support Georg
-- Fixed a bug whereby a unit which studied a mage skill but failed to
study due to insufficient funds was still marked (and counted) as a
mage.
-- Fixed a bug that allowed units apprentices to become mages and vice
versa without needing to FORGET first.
-- Guarding units see who they forbid entry too.
-- A unit forbidden entry (or the guarding unit) will see the faction of
the unit that forbid them (or that they forbid) if they have sufficient
observation of if the unit is revealing faction.
-- Added BATTLE_FACTION_INFO option in gamedefs. If this is true, then
units involved in a battle will display their faction information IF
*ANY* unit on the opposite side has sufficent OBSE to see it. The
reason this is an option (unlike the guarding units one) is that the
same battle report is sent to non-involved observers of the battle.
Due to the way the battle information is stored, it is not possible to
customize this info per-faction seeing.
-- Fixed a bug where a failed build incremented the building sequence
number leading to a method whereby a region could be made deliberately
unusable for building.
-- Increased the range on the days of skill so that it shouldn't wrap
to negatives. Overflow sucks.
-- Changed the message when no spoils are gained in a battle to
'Spoils: none.' to alleviate problems with clients that didn't bother
to figure out that the message used to be 'No spoils'. Besides, a
consistant format is good.
-- Implemented WITHDRAW order, making unlimited markets unnecessary.
This order is not enabled by default (enable via ALLOW_WITHDRAW in
gamedefs.h). If this option is enabled, the world building code will
not build unlimited markets in the starting city, but will build regular
markets instead (it has no effect on starting city markets after world
generation).
-- Fixed bug in production of BAGS that was giving all bag producers a +2
skill level bonus.
-- Spinning wheels now correctly help bag production.
-- Implemented NOSPOILS flag
-- Added some items that Tom Alsen (Tzarg) had added to a custom game.
Some of these items have been slightly modified.
-- Modified production code to allow an item to be built out of two items.
When an item has two inputs, it takes man-months equal to the sum of
the number of input units. (For instance, if a battle axe takes 1
unit of wood and 1 unit of iron to manufacture, then it takes 2
man-months to produce each one)
-- Cleaned up the city/town/village renaming code a bit (Thanks to Tom
Alsen). Also added a CITY_RENAME_COST, which if not zero is used as
a multiply against the city level (1 == village, 2==town, 3==city)
as a cost for renaming the city.
-- Added more room for monster lairs (each terrain can now host up to
1 of 6 instead of 1 of 4 different types of lairs).
-- NEW RULE: A unit cannot steal from or assassinate a unit which it
it unable to see. A unit may not GIVE items to a unit it cannot see
unless that unit's faction sees the giver as friendly.
-- Added room for one additional coastal and one additional non-coastal
race in each of the terrain type definitions.
-- Fixed bug with a reversed sign in road building.
-- Patch from Tom Alsen (Tzarg) to catch if unit sequence numbers got
foobar'd and to at least attempt to repair it. Side effect of this
is that any orders for the repaired unit get lost, but that is
unavoidable. It also warns the GM so that he can look into it and
hopefully fix it.
-- Added a 'similar_type' to the TerrainDefs structure so that spells
(such as wolf-lore) worked correctly with the Ceran types and the
conquest types enabled. There are possibly other places where the
similar_type should be used instead of the direct type.
-- Added healing potions which are made from mushrooms (a new resource)
and which can be carried along with armies. Each potion acts as a
healer of skill level 1.
-- Implemented GIVE [unit] ALL [item] and GIVE [unit] ALL [item]
EXCEPT [amount]. Updated the rules to reflect the changes.
Changes from 4.0.4 -> 4.0.5
-------------------------------------------------
-- Merged 4.0.4c and Realms of Arcane Codebases
-- Merged in some parts of Lacandon conquest
-- Fairly extensive reorganization of the source code.
-- Small fix to make discontinuities in the UW maze less.
-- Added ability to disable items.
-- Some changes for Wyreth
-- Changes for greater flexibility
-- Many new options in gamedefs structure.