From 7bbf92221cd72d4d28c3f6962c57ed51e8605c55 Mon Sep 17 00:00:00 2001 From: Yann Dirson Date: Fri, 13 Aug 2004 20:00:37 +0000 Subject: [PATCH] merged syncpoint_gettext1_11 from trunk --- changelog | 11 +++ .../Son_Of_The_Black_Eye/Black_Flag.cfg | 8 +- .../Son_Of_The_Black_Eye/Clash_Of_Armies.cfg | 2 +- .../Son_Of_The_Black_Eye/Desert_Of_Death.cfg | 2 +- .../Son_Of_The_Black_Eye/End_Of_Peace.cfg | 2 +- .../Son_Of_The_Black_Eye/Saving_Inarix.cfg | 2 +- .../Shan_Taum_The_Smug.cfg | 2 +- .../Son_Of_The_Black_Eye/Silent_Forest.cfg | 6 +- .../The_Siege_Of_Barag_Gor.cfg | 8 +- .../To_The_Harbour_Of_Tirigaz.cfg | 2 +- .../Towards_Mountains_of_Haag.cfg | 20 +++-- data/scenarios/Son_Of_The_Black_Eye/story.cfg | 2 +- .../A_Summer_of_Storms.cfg | 3 +- .../The_Rise_of_Wesnoth/Return_to_Oldwood.cfg | 6 +- .../The_Rise_of_Wesnoth/The_Fall.cfg | 8 +- .../The_Rise_of_Wesnoth/trow-deaths.cfg | 6 +- data/units/Fireball.cfg | 6 +- data/units/Great_Troll.cfg | 5 +- data/units/Noble_Commander.cfg | 2 +- data/units/Noble_Fighter.cfg | 6 +- data/units/Noble_Lord.cfg | 6 +- data/units/Noble_Youth.cfg | 6 +- data/units/Orcish_Leader.cfg | 5 +- data/units/Orcish_Ruler.cfg | 8 +- data/units/Orcish_Sovereign.cfg | 5 +- data/units/Outlaw.cfg | 69 ++++++++++++++++++ data/units/Outlaw_Female.cfg | 69 ------------------ data/units/Outlaw_Princess.cfg | 11 ++- data/units/Outlaw_Queen.cfg | 10 +-- data/units/Troll_Hero.cfg | 5 +- images/neutral-outlaw-female-attack-mace.png | Bin 1299 -> 0 bytes images/neutral-outlaw-female-attack1.png | Bin 1274 -> 0 bytes images/neutral-outlaw-female-attack2.png | Bin 1169 -> 0 bytes images/neutral-outlaw-female-defend.png | Bin 957 -> 0 bytes images/neutral-outlaw-female.png | Bin 1151 -> 0 bytes images/orcish-ruler.png | Bin 1393 -> 2373 bytes src/filesystem.cpp | 2 + src/game_events.cpp | 3 +- src/gamestatus.cpp | 7 +- src/log.cpp | 4 + src/log.hpp | 14 +++- src/playturn.cpp | 2 +- src/unit.cpp | 4 +- src/unit.hpp | 2 +- 44 files changed, 191 insertions(+), 150 deletions(-) delete mode 100644 data/units/Outlaw_Female.cfg delete mode 100644 images/neutral-outlaw-female-attack-mace.png delete mode 100644 images/neutral-outlaw-female-attack1.png delete mode 100644 images/neutral-outlaw-female-attack2.png delete mode 100644 images/neutral-outlaw-female-defend.png delete mode 100644 images/neutral-outlaw-female.png diff --git a/changelog b/changelog index 883e6cbf9fd..f64a7095f84 100644 --- a/changelog +++ b/changelog @@ -20,7 +20,13 @@ CVS HEAD: * Dark Adept: increased ranged damage, reduced cost * Drake Slave: increased melee damage * Drake Worker: increased melee damage + * Noble Commander: increased hitpoints + * Noble Fighter: increased hitpoints and melee damage + * Noble Lord: reduced hitpoints, reduced melee and ranged damage + * Noble Youth: increased hitpoints, increased movement, increased melee damage * Outlaw: reduced hitpoints, reduced number of melee attacks, increased ranged damage + * Outlaw Princess: reduced hitpoints, reduced experience required to level, reduced number of melee attacks, increased ranged damage, replaced 'ambush' with 'skirmisher' + * Outlaw Queen: increased hitpoints, replaced 'ambush' with 'skirmisher', reduced number of melee attacks, increased ranged damage and number of ranged attacks * Soulless: increased melee damage * Thug: increased melee damage and reduced number of attacks * Walking Corpse: increased melee damage @@ -29,10 +35,13 @@ CVS HEAD: * Drake Warmage * Skeletal Dragon * Troll Hero + * Orcish Leader + * Orcish Sovereign * multiplayer improvements: * 'Great War' era * limit to username lenght * banning for multiplayer server games + * Scenario balancing for most of 'Son of the Black Eye' scenarios * language fixes and polishing (english) * support for multi-animation attacks * support for per-scenario configurable village flags, sample black-eyed banner for Son of the Black Eye campaign @@ -57,6 +66,8 @@ CVS HEAD: * fixed holy water in 'Heir to the Throne: Valley of Death' scenario (#9930) * fixed a bug where a unit moving with [move_unit_fake] segfaulted the game * fixed problems with cache invalidation + * fixed file descriptor leak + * fixed 'gender' not working with move_unit_fake * terrains tiles are now cut according to the hexagonal shape, to avoid some graphical glitches * workaround a SDL_TTF bug that makes it crash when presented an invalid UTF-8 string * limited length of schema items in compressed WML to make a DoS attack harder to perform diff --git a/data/scenarios/Son_Of_The_Black_Eye/Black_Flag.cfg b/data/scenarios/Son_Of_The_Black_Eye/Black_Flag.cfg index eb0746ce2e3..0093ff83cf6 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/Black_Flag.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/Black_Flag.cfg @@ -27,7 +27,7 @@ Defeat: #Turns run out" [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 @@ -52,8 +52,8 @@ Defeat: village_value=10.0 leader_value=50.0 [/ai] - {GOLD 100 160 200} - {INCOME 10 16 20} + {GOLD 100 120 180} + {INCOME 5 10 15} [/side] [side] @@ -95,7 +95,7 @@ Defeat: [/recall] [teleport] [filter] - type=Orcish Ruler + description=Kapou'e [/filter] x=25 y=1 diff --git a/data/scenarios/Son_Of_The_Black_Eye/Clash_Of_Armies.cfg b/data/scenarios/Son_Of_The_Black_Eye/Clash_Of_Armies.cfg index f4d9e1996ff..32adb9913c8 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/Clash_Of_Armies.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/Clash_Of_Armies.cfg @@ -29,7 +29,7 @@ Defeat: #Death of Inarix" [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 diff --git a/data/scenarios/Son_Of_The_Black_Eye/Desert_Of_Death.cfg b/data/scenarios/Son_Of_The_Black_Eye/Desert_Of_Death.cfg index 75293f5b302..6632649cd6b 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/Desert_Of_Death.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/Desert_Of_Death.cfg @@ -28,7 +28,7 @@ Defeat: #Death of a Shaman" [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 diff --git a/data/scenarios/Son_Of_The_Black_Eye/End_Of_Peace.cfg b/data/scenarios/Son_Of_The_Black_Eye/End_Of_Peace.cfg index 80ff7eba9f9..65fa599080f 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/End_Of_Peace.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/End_Of_Peace.cfg @@ -38,7 +38,7 @@ Defeat: [/item] [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 diff --git a/data/scenarios/Son_Of_The_Black_Eye/Saving_Inarix.cfg b/data/scenarios/Son_Of_The_Black_Eye/Saving_Inarix.cfg index f48fc56dc37..3e2e6735f79 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/Saving_Inarix.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/Saving_Inarix.cfg @@ -95,7 +95,7 @@ Defeat: #Death of more than 5 saurians" [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 diff --git a/data/scenarios/Son_Of_The_Black_Eye/Shan_Taum_The_Smug.cfg b/data/scenarios/Son_Of_The_Black_Eye/Shan_Taum_The_Smug.cfg index bebee351744..72aa2598ef3 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/Shan_Taum_The_Smug.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/Shan_Taum_The_Smug.cfg @@ -28,7 +28,7 @@ Defeat: #Death of a shaman" [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 diff --git a/data/scenarios/Son_Of_The_Black_Eye/Silent_Forest.cfg b/data/scenarios/Son_Of_The_Black_Eye/Silent_Forest.cfg index 5889913fa4d..3d9da0d4fa7 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/Silent_Forest.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/Silent_Forest.cfg @@ -28,7 +28,7 @@ Defeat: #Death of a Shaman" [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 @@ -50,8 +50,8 @@ Defeat: aggression=-1.0 [/ai] recruit=Elvish Fighter, Elvish Captain, Elvish Scout, Elvish Shaman, Elvish Archer - {GOLD 120, 180, 220} - {INCOME 0, 6, 12} + {GOLD 80, 100, 120} + {INCOME 0, 4, 8} [/side] [side] diff --git a/data/scenarios/Son_Of_The_Black_Eye/The_Siege_Of_Barag_Gor.cfg b/data/scenarios/Son_Of_The_Black_Eye/The_Siege_Of_Barag_Gor.cfg index 18d2ee381a3..3308f6f78aa 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/The_Siege_Of_Barag_Gor.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/The_Siege_Of_Barag_Gor.cfg @@ -28,7 +28,7 @@ Defeat: #Turns run out" [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 @@ -100,10 +100,10 @@ Defeat: [/recall] {ELVISH_FIGHTER 22 12} {ELVISH_FIGHTER 21 13} - {ELVISH_FIGHTER 20 15} + {ELVISH_FIGHTER 19 16} {ELVISH_ARCHER 25 14} {ELVISH_ARCHER 24 13} - {ELVISH_ARCHER 23 17} + {ELVISH_ARCHER 24 17} {ORCISH_ARCHER_G 21 14} {ORCISH_ARCHER_G 22 13} {ORCISH_ARCHER_G 23 16} @@ -368,7 +368,7 @@ Defeat: first_time_only=no name=moveto [filter] - type=Orcish Ruler + description=Kapou'e x=1 y=13-14 [/filter] diff --git a/data/scenarios/Son_Of_The_Black_Eye/To_The_Harbour_Of_Tirigaz.cfg b/data/scenarios/Son_Of_The_Black_Eye/To_The_Harbour_Of_Tirigaz.cfg index 25e381ec20b..9e10156d36f 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/To_The_Harbour_Of_Tirigaz.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/To_The_Harbour_Of_Tirigaz.cfg @@ -42,7 +42,7 @@ Defeat: #Death of a Shaman" [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 diff --git a/data/scenarios/Son_Of_The_Black_Eye/Towards_Mountains_of_Haag.cfg b/data/scenarios/Son_Of_The_Black_Eye/Towards_Mountains_of_Haag.cfg index 8132f1089af..41e6a3c7e18 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/Towards_Mountains_of_Haag.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/Towards_Mountains_of_Haag.cfg @@ -48,7 +48,7 @@ Defeat: [/item] [side] - type=Orcish Ruler + type=Orcish Leader description=Kapou'e side=1 canrecruit=1 @@ -134,7 +134,7 @@ Defeat: [/unit] [unit] description=Grüü - type=Troll + type=Troll Hero side=3 x=27 y=13 @@ -328,11 +328,17 @@ Defeat: [kill] description=Blemaker [/kill] - [unit] - side=1 - description=Grüü - type=Troll - [/unit] + [store_unit] + [filter] + description=Grüü + [/filter] + variable=gruu_store + [/store_unit] + {VARIABLE gruu_store.side 1} + [unstore_unit] + variable=gruu_store + [/unstore_unit] + {CLEAR_VARIABLE gruu_store} [/event] [/scenario] diff --git a/data/scenarios/Son_Of_The_Black_Eye/story.cfg b/data/scenarios/Son_Of_The_Black_Eye/story.cfg index 96809388bab..022585c85cb 100644 --- a/data/scenarios/Son_Of_The_Black_Eye/story.cfg +++ b/data/scenarios/Son_Of_The_Black_Eye/story.cfg @@ -26,7 +26,7 @@ [part] id=orc_intro_5 - story= _ "By nightfall his troops reached a mountainous territory, under the authority of orcish ruler Kapou'e, the son of the Black Eye." + story= _ "By nightfall his troops reached a mountainous territory, under the authority of orcish leader Kapou'e, the son of the Black Eye." background=maps/sotbe.png [/part] diff --git a/data/scenarios/The_Rise_of_Wesnoth/A_Summer_of_Storms.cfg b/data/scenarios/The_Rise_of_Wesnoth/A_Summer_of_Storms.cfg index 43fa590446a..7fb69dafb87 100644 --- a/data/scenarios/The_Rise_of_Wesnoth/A_Summer_of_Storms.cfg +++ b/data/scenarios/The_Rise_of_Wesnoth/A_Summer_of_Storms.cfg @@ -55,7 +55,8 @@ Defeat: [/side] [side] - type=Female Outlaw + type=Outlaw + gender=female description=Wesfolk Leader side=2 canrecruit=1 diff --git a/data/scenarios/The_Rise_of_Wesnoth/Return_to_Oldwood.cfg b/data/scenarios/The_Rise_of_Wesnoth/Return_to_Oldwood.cfg index 52564cf29d6..595b85ab2d5 100644 --- a/data/scenarios/The_Rise_of_Wesnoth/Return_to_Oldwood.cfg +++ b/data/scenarios/The_Rise_of_Wesnoth/Return_to_Oldwood.cfg @@ -135,12 +135,14 @@ message= _ "We can't all stay here for the winter or we'll all starve, or freeze. Your hospitality has barely been enough as it is. Wait a second, I see somebody!" [/message] [move_unit_fake] - type=Female Outlaw + type=Outlaw + gender=female x=8,8,8,8,8,7,7,6,6 y=30,29,28,27,26,26,25,24,23,22 [/move_unit_fake] [unit] - type=Female Outlaw + type=Outlaw + gender=female description=Lady Outlaw side=1 x=6 diff --git a/data/scenarios/The_Rise_of_Wesnoth/The_Fall.cfg b/data/scenarios/The_Rise_of_Wesnoth/The_Fall.cfg index 4a1c65cfb28..69e9de3242f 100644 --- a/data/scenarios/The_Rise_of_Wesnoth/The_Fall.cfg +++ b/data/scenarios/The_Rise_of_Wesnoth/The_Fall.cfg @@ -46,7 +46,8 @@ Defeat: [/side] [side] - type=Female Outlaw + type=Outlaw + gender=female description=Wesfolk Leader side=2 canrecruit=1 @@ -54,7 +55,7 @@ Defeat: [ai] recruitment_pattern=fighter,fighter,archer,scout {NO_SCOUTS} - aggression=-0.25 + aggression=-0.35 passive_leader=yes grouping=defensive [/ai] @@ -310,7 +311,8 @@ Defeat: [/message] [unit] description=Lady Outlaw - type=Female Outlaw + type=Outlaw + gender=female side=1 [/unit] [set_variable] diff --git a/data/scenarios/The_Rise_of_Wesnoth/trow-deaths.cfg b/data/scenarios/The_Rise_of_Wesnoth/trow-deaths.cfg index 72bf7ecd66a..ee685acc9fe 100644 --- a/data/scenarios/The_Rise_of_Wesnoth/trow-deaths.cfg +++ b/data/scenarios/The_Rise_of_Wesnoth/trow-deaths.cfg @@ -141,9 +141,5 @@ speaker=Prince Haldric message= _ "I kind of had plans for him." [/message] - - [endlevel] - result=defeat - bonus=no - [/endlevel] + [/event] diff --git a/data/units/Fireball.cfg b/data/units/Fireball.cfg index ea8006d2362..e6d804132f9 100644 --- a/data/units/Fireball.cfg +++ b/data/units/Fireball.cfg @@ -5,9 +5,9 @@ name= _ "Fireball" image=projectiles/fireball.png image_defensive=projectiles/fireball.png hitpoints=1 -movement_type=none -movement=1 -experience=1 +movement_type=fly +movement=5 +experience=500 level=0 alignment=neutral advanceto=null diff --git a/data/units/Great_Troll.cfg b/data/units/Great_Troll.cfg index 575bffa4c43..2c24458e956 100644 --- a/data/units/Great_Troll.cfg +++ b/data/units/Great_Troll.cfg @@ -1,5 +1,6 @@ [unit] -name=Great Troll +id=Great Troll +name= _ "Great Troll" race=troll image=great-troll.png #image_defensive=great-troll-defend.png @@ -12,7 +13,7 @@ level=3 alignment=chaotic advanceto=null cost=38 -unit_description="Great Trolls are strong and brutal humanoid monsters with the amazing ability to regenerate themselves, so that they recover from wounds on their own, even during battle." +unit_description= _ "Great Trolls are strong and brutal humanoid monsters with the amazing ability to regenerate themselves, so that they recover from wounds on their own, even during battle." get_hit_sound=ugg.wav usage=fighter [attack] diff --git a/data/units/Noble_Commander.cfg b/data/units/Noble_Commander.cfg index 1f00e5e0a2d..72c7abf0998 100644 --- a/data/units/Noble_Commander.cfg +++ b/data/units/Noble_Commander.cfg @@ -6,7 +6,7 @@ gender=male image=noble-commander.png image_defensive=noble-commander-defend.png image_leading=noble-commander-leading.png -hitpoints=45 +hitpoints=48 ability=leadership movement_type=smallfoot movement=6 diff --git a/data/units/Noble_Fighter.cfg b/data/units/Noble_Fighter.cfg index 3a5bf4f32de..d510294a753 100644 --- a/data/units/Noble_Fighter.cfg +++ b/data/units/Noble_Fighter.cfg @@ -5,7 +5,7 @@ race=human gender=male image=noble-fighter.png image_defensive=noble-fighter-defend.png -hitpoints=32 +hitpoints=36 movement_type=smallfoot movement=6 experience=28 @@ -14,13 +14,13 @@ alignment=lawful advanceto=Noble Commander cost=35 usage=mixed fighter -unit_description= _ "Young and brash, Fighters fight with a sword, and are vulnerable to attack from enemies. However they have the potential to become great warriors one day." +unit_description= _ "Young and brash, Fighters fight with a sword, and are vulnerable to ranged attacks from enemies. However they have the potential to become great Commanders one day." get_hit_sound=groan.wav [attack] name=sword type=blade range=short - damage=6 + damage=7 number=3 icon=attacks/sword.png [frame] diff --git a/data/units/Noble_Lord.cfg b/data/units/Noble_Lord.cfg index 5a563754c84..11a2095dbc4 100644 --- a/data/units/Noble_Lord.cfg +++ b/data/units/Noble_Lord.cfg @@ -6,7 +6,7 @@ gender=male image=noble-lord.png image_defensive=noble-lord-defend.png image_leading=noble-lord-leading.png -hitpoints=68 +hitpoints=64 ability=leadership movement_type=smallfoot movement=6 @@ -22,7 +22,7 @@ get_hit_sound=groan.wav name=sword type=blade range=short - damage=12 + damage=11 number=4 icon=attacks/sword.png [frame] @@ -40,7 +40,7 @@ get_hit_sound=groan.wav name=bow type=pierce range=long - damage=9 + damage=8 number=3 icon=attacks/bow.png [frame] diff --git a/data/units/Noble_Youth.cfg b/data/units/Noble_Youth.cfg index e15710086dc..72fbad51601 100644 --- a/data/units/Noble_Youth.cfg +++ b/data/units/Noble_Youth.cfg @@ -5,9 +5,9 @@ race=human gender=male image=noble-youth.png image_defensive=noble-youth-defend.png -hitpoints=20 +hitpoints=24 movement_type=smallfoot -movement=4 +movement=5 experience=8 level=0 alignment=neutral @@ -21,7 +21,7 @@ get_hit_sound=groan.wav icon=attacks/woodensword.png type=impact range=short - damage=3 + damage=4 number=2 [frame] begin=-100 diff --git a/data/units/Orcish_Leader.cfg b/data/units/Orcish_Leader.cfg index 1e930003398..1ec985b06eb 100644 --- a/data/units/Orcish_Leader.cfg +++ b/data/units/Orcish_Leader.cfg @@ -1,5 +1,6 @@ [unit] -name=Orcish Leader +id=Orcish Leader +name= _ "Orcish Leader" race=orc image=orcish-leader.png image_defensive=orcish-leader-defend.png @@ -14,7 +15,7 @@ alignment=chaotic advanceto=Orcish Ruler cost=120 usage=mixed fighter -unit_description="Orcish Rulers are the chiefs of their tribe. They make the important decisions and lead their people into battle. They carry a bow out of necessity, but are much more skilled with the sword; all in all, they are powerful fighters. Their natural leadership skills make them very precious in the battle: if the Ruler is lost, so is the battle." +unit_description= _ "Orcish Rulers are the chiefs of their tribe. They make the important decisions and lead their people into battle. They carry a bow out of necessity, but are much more skilled with the sword; all in all, they are powerful fighters. Their natural leadership skills make them very precious in the battle: if the Ruler is lost, so is the battle." get_hit_sound=orc-hit.wav [attack] name=sword diff --git a/data/units/Orcish_Ruler.cfg b/data/units/Orcish_Ruler.cfg index c448f9c331a..da89a23e674 100644 --- a/data/units/Orcish_Ruler.cfg +++ b/data/units/Orcish_Ruler.cfg @@ -3,15 +3,16 @@ id=Orcish Ruler name= _ "Orcish Ruler" race=orc image=orcish-ruler.png +image_defensive=orcish-ruler-defend.png #profile=misc/kapoue.png -hitpoints=45 +hitpoints=60 ability=leadership movement_type=orcishfoot movement=6 -experience=60 +experience=120 level=2 alignment=chaotic -advanceto=null +advanceto=Orcish Sovereign cost=120 usage=mixed fighter unit_description= _ "Orcish Rulers are the chiefs of their tribe. They make the important decisions and lead their people into battle. They carry a bow out of necessity, but are much more skilled with the sword; all in all, they are powerful fighters. Their natural leadership skills make them very precious in the battle: if the Ruler is lost, so is the battle." @@ -25,6 +26,7 @@ get_hit_sound=orc-hit.wav [sound] time=-250 sound=sword-swish.wav + image=orcish-ruler-attack.png [/sound] [/attack] [attack] diff --git a/data/units/Orcish_Sovereign.cfg b/data/units/Orcish_Sovereign.cfg index c758e724dd3..b03a066fc1c 100644 --- a/data/units/Orcish_Sovereign.cfg +++ b/data/units/Orcish_Sovereign.cfg @@ -1,5 +1,6 @@ [unit] -name=Orcish Sovereign +id=Orcish Sovereign +name= _ "Orcish Sovereign" race=orc image=orcish-ruler.png #profile=misc/kapoue.png @@ -13,7 +14,7 @@ alignment=chaotic advanceto=null cost=120 usage=mixed fighter -unit_description="Orcish Sovereign are the chiefs of their tribe. They make the important decisions and lead their people into battle. They carry a bow out of necessity, but are much more skilled with the sword; all in all, they are powerful fighters. Their natural leadership skills make them very precious in the battle: if the Ruler is lost, so is the battle." +unit_description= _ "Orcish Sovereign are the chiefs of their tribe. They make the important decisions and lead their people into battle. They carry a bow out of necessity, but are much more skilled with the sword; all in all, they are powerful fighters. Their natural leadership skills make them very precious in the battle: if the Ruler is lost, so is the battle." get_hit_sound=orc-hit.wav [attack] name=sword diff --git a/data/units/Outlaw.cfg b/data/units/Outlaw.cfg index 25a470a147f..3a237402000 100644 --- a/data/units/Outlaw.cfg +++ b/data/units/Outlaw.cfg @@ -2,6 +2,7 @@ id=Outlaw name= _ "Outlaw" race=human +gender=male,female image=neutral-outlaw.png image_defensive=neutral-outlaw-defend.png hitpoints=40 @@ -68,4 +69,72 @@ get_hit_sound=groan.wav image_diagonal=projectiles/stone.png [/missile_frame] [/attack] + + [female] + name=Outlaw + race=human + gender=female + image=neutral-outlaw+female.png + image_defensive=neutral-outlaw+female-defend.png + hitpoints=40 + movement_type=elusivefoot + movement=7 + experience=500 + level=2 + alignment=chaotic + advanceto=null + cost=40 + usage=mixed fighter + unit_description="Outlaws fight better at night. Female Outlaws look good while doing it." + get_hit_sound=female-hit.wav + + [attack] + name=mace + type=impact + range=short + damage=7 + number=2 + icon=attacks/mace.png + [frame] + begin=-100 + end=100 + image=neutral-outlaw+female-attack.png + [/frame] + + [sound] + time=-100 + sound=mace.wav + [/sound] + [/attack] + [attack] + name=sling + type=impact + range=long + damage=6 + number=3 + icon=attacks/sling.png + [sound] + time=-100 + sound=firearrow.wav + [/sound] + + [frame] + begin=-250 + end=-50 + image=neutral-outlaw+female-attack1.png + [/frame] + [frame] + begin=-50 + end=50 + image=neutral-outlaw+female-attack2.png + [/frame] + + [missile_frame] + begin=-100 + end=0 + image=projectiles/stone.png + image_diagonal=projectiles/stone.png + [/missile_frame] + [/attack] + [/female] [/unit] diff --git a/data/units/Outlaw_Female.cfg b/data/units/Outlaw_Female.cfg deleted file mode 100644 index 56005e3cad1..00000000000 --- a/data/units/Outlaw_Female.cfg +++ /dev/null @@ -1,69 +0,0 @@ -[unit] -#All credit for the images goes to Sangel -#In a sane world she'd level to the Outlaw Princess, who is level 2 -id=Female Outlaw -name= _ "Female Outlaw" -race=human -gender=female -image=neutral-outlaw-female.png -image_defensive=neutral-outlaw-female-defend.png -hitpoints=48 -movement_type=elusivefoot -movement=7 -experience=500 -level=2 -alignment=chaotic -advanceto=null -cost=40 -usage=mixed fighter -unit_description= _ "Outlaws fight better at night. Female Outlaws look good while doing it (fighting at night)." -get_hit_sound=groan.wav - [attack] - name=mace - type=impact - range=short - damage=7 - number=4 - icon=attacks/mace.png - [frame] - begin=-100 - end=100 - image=neutral-outlaw-female-attack-mace.png - [/frame] - - [sound] - time=-100 - sound=mace.wav - [/sound] - [/attack] - [attack] - name=sling - type=impact - range=long - damage=5 - number=3 - icon=attacks/sling.png - [sound] - time=-100 - sound=firearrow.wav - [/sound] - - [frame] - begin=-250 - end=-50 - image=neutral-outlaw-female-attack1.png - [/frame] - [frame] - begin=-50 - end=50 - image=neutral-outlaw-female-attack2.png - [/frame] - - [missile_frame] - begin=-100 - end=0 - image=projectiles/stone.png - image_diagonal=projectiles/stone.png - [/missile_frame] - [/attack] -[/unit] diff --git a/data/units/Outlaw_Princess.cfg b/data/units/Outlaw_Princess.cfg index 35f0f2f5c2f..537ad0b67e2 100644 --- a/data/units/Outlaw_Princess.cfg +++ b/data/units/Outlaw_Princess.cfg @@ -6,16 +6,15 @@ race=human gender=female image=neutral-outlaw-princess.png image_defensive=neutral-outlaw-princess-defend.png -hitpoints=48 +hitpoints=46 movement_type=elusivefoot movement=7 -experience=70 +experience=60 level=2 alignment=chaotic advanceto=Outlaw Queen cost=50 -ability=ambush - +ability=skirmisher usage=mixed fighter unit_description= _ "A noble by birth, the Outlaw Princess has learnt swordplay with the greatest generals, but she is the product of a failed aristocracy who has opted for the life of an Outlaw. She dreams of founding her own Queendom with the plunder she finds on the road." @@ -25,7 +24,7 @@ get_hit_sound=groan.wav type=impact range=short damage=7 - number=4 + number=2 icon=attacks/mace.png [frame] begin=-100 @@ -42,7 +41,7 @@ get_hit_sound=groan.wav name=sling type=impact range=long - damage=5 + damage=6 number=3 icon=attacks/sling.png [frame] diff --git a/data/units/Outlaw_Queen.cfg b/data/units/Outlaw_Queen.cfg index b45944e00c6..8078d753af8 100644 --- a/data/units/Outlaw_Queen.cfg +++ b/data/units/Outlaw_Queen.cfg @@ -6,7 +6,7 @@ gender=female image=neutral-outlaw-queen.png image_defensive=neutral-outlaw-queen-defend.png image_leading=neutral-outlaw-queen-leading.png -hitpoints=56 +hitpoints=62 movement_type=elusivefoot movement=7 experience=500 @@ -14,7 +14,7 @@ level=3 alignment=chaotic advanceto=null cost=150 -ability=ambush,leadership +ability=skirmisher,leadership usage=mixed fighter unit_description= _ "A noble by birth, the Outlaw Queen has learnt swordplay with the greatest generals and battle tactics with the greatest sages, making her both a great combatant and leader. However, she is the product of a failed aristocracy who has opted for the life of an Outlaw. She dreams of founding her own Queendom with the plunder she finds on the road, and she is ever so close to that goal." @@ -25,7 +25,7 @@ get_hit_sound=groan.wav type=impact range=short damage=9 - number=4 + number=3 icon=attacks/mace.png [frame] begin=-100 @@ -42,8 +42,8 @@ get_hit_sound=groan.wav name=sling type=impact range=long - damage=7 - number=3 + damage=8 + number=4 icon=attacks/sling.png [frame] begin=-250 diff --git a/data/units/Troll_Hero.cfg b/data/units/Troll_Hero.cfg index 143744ec151..78fd29175f9 100644 --- a/data/units/Troll_Hero.cfg +++ b/data/units/Troll_Hero.cfg @@ -1,5 +1,6 @@ [unit] -name=Troll Hero +id=Troll Hero +name= _ "Troll Hero" race=troll image=troll-hero.png #image_defensive=troll-hero-defend.png @@ -12,7 +13,7 @@ level=2 alignment=chaotic advanceto=Great Troll cost=30 -unit_description="Trolls hero are strong and brutal humanoid monsters with the amazing ability to regenerate themselves, so that they recover from wounds on their own, even during battle." +unit_description= _ "Trolls hero are strong and brutal humanoid monsters with the amazing ability to regenerate themselves, so that they recover from wounds on their own, even during battle." get_hit_sound=ugg.wav usage=fighter [attack] diff --git a/images/neutral-outlaw-female-attack-mace.png b/images/neutral-outlaw-female-attack-mace.png deleted file mode 100644 index b53860601a229491a7ce4b7d491f7fa0ccd5c93c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1299 zcmV+u1?>8XP)PZobg!@J7W7y}toLkuO;TUhv^ft%MB*rAOsX31C zZ2D-kK*6z|6N-Si$MX^#fVl6^d+y_{xp0iY^>MRk(%IA)C(f2Q3al720wN9qI8Bhs zfF^}BK2Y9SW<*s47)6rWgkcqDjv}GWk#?$vSsBnIkQxKArWB#YT53*Qk9gec?PUib z6hoodR%Ox50hPj3U}-(#a~wv*`MR|p;_t7g&i&a9$8~^44Ko()_G?fyJC#L&5oHfU zi!(63y;yf?KXvym55hTGM4cIJ6wpDksM#!*ciIn=05+`tDAMBM@esf7{BSpqT?wrY zF@k(~|0aAkj?vIZ0UWedt92W@fq+UVB#sLaCS_Xw7$67-qqVPH+WK+K2 zocr{_EuWY#G6zV&0TQl{dPON4X1;Z+>$k%(T1G2C1Yr##6p=UsDHPhcU^ByT9lZBc0*(}Mc9KY}Pefvb%#m~4$Mbb&R|R7BAjXB6%7z&_ z4j5)nyfvcFF^hDT)56Z7$@^$)EkXQHB8Wz7L#z%`)o{=vt}|YI3`7O0$|C$HJU*WW zj7i`e%APc9lHzdc*K=ZMy+RB_BF?pyQ+tKoqcA$NY0sgCPI4=R7!1_3VcA9~JcrN0 z5`cA1ab#9=o%vRSF!7?1GY!CaUxz5`6_GA3B_RUD&j&+sIJ0#QNb3xtbVlP4jFAWh z9KdiX5o*p9ze#De_HaoMzlsnC_x1H7F7`MF5MY=^)Bc*N)xwOb~iB0tg+}%+MfMD84yl*;0Y^CJZxw&bHG)#L+F0xbtb6x_CM-%Z#?ZwQUV( z#dl^!_lx{-j1#7IKV2hqJ%sZk{l^QaDe;Q9Y>h)8oz1FN;ztIEuL-(3j^D|+^})~u z;E@F?W+dNPovm0y{JpH~#Z}iwoZaxOM*cIIenzK&bn}d_1-gesAc=jmnZ8bx0mWFI z0m3h=YaGr*MbYKHb&_NwI$dN^6;4}F6T{K<42!cC=o&b2MrGs1tOI3n&5^8W)ZxP% zT2re*`hL_E1p6aS12P~3G9UvoAOo^6AOkWW12P~3GNAt`{sDcmu{X}<&Sd}q002ov JPDHLkV1j)TKfM3| diff --git a/images/neutral-outlaw-female-attack1.png b/images/neutral-outlaw-female-attack1.png deleted file mode 100644 index 2c749f0a9686a960c32dc7c3c73278ab67b0fb83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1274 zcmVpH|sP1yVjL98D$N{?gfSp(6%9ljOv?TK6k{9`vIF1I z7#fP>VP;V!KcaE|{Cp~bW1Jg>#4;kzm$fAcejmrh1NCK2dR-xnYtF#<`eMm-x*hl6 z+Jbz>h&ap@t1HEUq0))%NHER+efau^|^;KGJf6rF6RJrs(noED+UOSm)V1nr81B~ z3P^7S=B8(4!VC9r$_NBtAhs{Qk^m5(a1HlNeRx+p(!TnSUbS+irb|w51-P;a%*GR$ z_}ua7m^nZK4v=tO;|OexC0AW}sZ8oCBR?6v?DqlrYmz}8NkWwxaANj^Yrw(xFcyz)CMnVCFI1w-4@VDwjstib%6IUUuK+G5d#nK9W2NUJwd0sMy z_xRAgi&`{S{RY^5xJ$c=$7{h>;yFIshx+D9f z#%B=ANcW%=5<4 z+LP1@$0c6(AeIZp6e;&+GHw|Cc%|3gT?CrE4G*FsBxW5l4H0JoI5s=bgPvgDp zIa~l5zs#pdX@=?j63dI(LmZ-UpQHo#$rFEQ$Qzg1vTD_VQ`zf|Tn1@CA`Sy$=`cDA zi#sU(JdRVGGo6#oe-_hk6muI!{YH^+u|bFOB2EMguQf1ke)J9aL~jSkj|eRPz^U_< zMI-v-J(jo?M@EOM}IT^zayeOdD(|GP_+n3oU zAOMr%#2%zFh*%usyQ9*8G}N%y5Zu@3Cv@(AfI~b0F@xBH_*uVCDiUZE97{`QPzt1x zxPo!SeNti}+a>}C6V^Dov@mkA#L>Y_!kA`T@j!hOO?r-AwQ?{zkTLuYe?!9-ok1zm zzoO*6$LwJyG8_4OMfae+fQ*CENNMjXx=B|FIV=+=9_W7nCuW&1H4MRk49I{C$bbyU kfDFjOfDFih45)GO7pnl!r&o!VF#rGn07*qoM6N<$g8G&|CjbBd diff --git a/images/neutral-outlaw-female-attack2.png b/images/neutral-outlaw-female-attack2.png deleted file mode 100644 index 9484c9afc6a6aba10ca168ae07911067cf035dcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1169 zcmV;C1aA9@P)1RhC5 zK~#9!?U=u76hRcnuRO50HCk-2IL;zo8Z{smHvXtYtWp>(gJNT+m58LUu~0+^39&r= zAJjs$N+lxLi~oVG-MHV!e3y4Gd&%8_o15Vse3{wV**)gN_q{i>oe)CDHCYb90XZNC zkOOi+4#)vHAP3}fK#2l+(_I=>3e@|{oy}>VEmzk<)_@|A@bgtC ze16cCK7{dUp5ObrpD!T7fdFS#NX3~!fP>KL@tvE!kUSuSm35AWgf>DNO@gzw{xIBo zxh<`RlnWpMpIV1zO^dXXdzqCilP_;ME5`kDq014UMDR?4q}KA$hVL0 z0sx?o7UPHI9}TK0Srbz7Rg4b8k6<*YN~1}6=ukK@7fINr2B^4xG4waC1hn^0+zvY{ zPo$*?=*FN3;n!1{*93`b`VZ!_d0ce7aNvq+!K;t%N{ed%f<9b*E7!893JeqWMt>l> zP@b)It~gbXSukU8D%~0MLlS@phw6U$6jo06YUf}faE;`j2xnM51Gla8mcrKgvX%t~ z>HCl*={b`1alskIoFX6~UO&53im(ulv-C3*F%C#gAa<`6Qqm#9LyNh1E)_sya0ms$ z!nkjNFowCq=r~q9Lc%?|hA^zN_`ig-(17aDihu}(A{>m@&Z_2P4A-2)KIgzWHq4s- zf719u0vZ}fbde4@3xa(*iPeoQDqgau`64D+R;?jJM~P!}iVY|2BD8fPkCiT2Ky(fO zG1+nqi|4{^4jKcbLX%F)3Q+By*p~(GK9?3p1}1F{fC8X$YqN$#sB{*0-AR5h(;Gs9 zkv5JK2mnBGB9DFUdjxC+Qy>`-+$f?=7LWjeTU4m&aM3x3*G$Ifi&LuSv7xlb4VHJb z$pO;t;o<;?PH4(MS{hajx#2uEYx!O%Kv{mk`N|~4sKx=YQyvMU!Hh>6; zM+|QM^k)uT#t*nG?v;4T=f||H0O^lpSgbyfvMtQ1UQ2%xAzZvCD?r)>grvXyEH9tj zYm$Y;FO0aC4InJWh6!D87#sp3ROT$Wi2ZB;X&2~o)+~UugBWW68&WH9^g^3X?$bbG z_0tY)15#@avJ0gXj)G&K)n5Sgdy-Gm78W(loTGqcQN>b~LvTP2$N@PZ2jqYpkOOi# jAP3}t9FPNYK$+-N3aTHZ)On3ye`0z?H=8WRjyL==}WH8VI~+M+4;kKI8aAe5!~fFO@lxAe2$ zyY4@%J{YSFvp7Z%a;8@ zCUJ9)<+6KOF#P3x&&d9J82sB9bwLN@y zwDaKt*DZS&nc8g?ayxR+^w*rC_wlydXR%0ZX?PVfQI0>XDNSJGja#3k+!k7yAD!X2 z#&OTS!WThZ>$lst&i!c1Y!xTVdG+UHF<0i;IO&@WrL5lClJAaJRDPSu+Q7g%<=^e= z*NhH#u`r!G*V?$&ha*jhttUNNy)E(k9Y!IA1`|6gj;rquw={njJj(RcL*v|zv~L=d zQu*I;^WD!DT6vL)cLDqIHcjDz-rpLhbk1}gd0@?QsM__Kf}i}M4f)LL%-da@9?Xhd zzQXs~!efmVscPlx*jP6^x~rsk-(o)c`oqsUryQx}q6!CYtZI1_EuJ8jmBP`$qkbsD zWr^8$=idK^H5YU^&v-^`NZlsGPt`gif@c{m-eO`lvFymf`>g0DB$rAPFv zlv4G`3_iIgTcbOQ@sLoTtTF%ks2<^f-XpnfIdMR>Q$LskvjzzV3 z;$7BRYu3r#d#v6QUtpy0*JaVoWszYb0^iO4EL%L^roq|ftlXg&+ZQN>8_KRo3*d86 z*;Xm`aMy}nCAL)-R$G6(buTpevSC*G?Muv0nL{OFx27F@^8S34ssa?$vcw=(;}{f0k$UK2mv3O!=<-(KN)YSKrC|4b2g+zM|V5=2VOjW!UDm|h*j YkzIO>reC*<0y7$er>mdKI;Vst0Lo>h2mk;8 diff --git a/images/neutral-outlaw-female.png b/images/neutral-outlaw-female.png deleted file mode 100644 index c9fddd8dffdb0a3dcbd2abc7c039b9b21a749e7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1151 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!oCO|{#X#yO2s5^yueu8qlq_+L zC<)F_D=AMbN@Z{_N-W68Om@!CD@!dZNi8ys^?1j?z{2C{;uunK>+OyG*&&Vs>>sq5 z#VXyp#dZ2NTTFHn7T}ido!Sw~)tnlTljEW-=$V+jutPv7N%F7!qSlP5UM?Fp2uo*2 z?=IbcxbFJSv(@Q5<m>na5{a&#hwodz7)`_pd#V@7agH=AS06b`f*;RgG5;7 zvka9jjG5Ips#gWuw(~eeOHFXd;Nd-579qx%TKIF_?yotqw*r-AwFKG)3+>kHd;j_O z@ygEl-9K=IqZ!ePR>OWjHXhMX^m3*c0!<`$$0f z#PaRyV?#rWdc>|vZ$5tivcnmK*t)rNpF>r~#%~+mJ(x51dFe?RyT{Jg_0kk4e&9Qx(A+Skmd#W& zJ?6S;*9^_JI<>QI3|n>CH!<8YF8;aDS>E)hl(>lR2RC+wnhH3ejK6FC+qRJ zvrE}bQxDe#+}fnE z*1hFWapd&{{~3RZPjU0g4*$0KMu$SQ@y3b;%?x5&`A!*P%a1Qk9F_kN9qF?38J{1p P@L=$C^>bP0l+XkK1(5r$ diff --git a/images/orcish-ruler.png b/images/orcish-ruler.png index bed6c330090e150125557a2cf0d520dc8b6ad194..05912a81d5ef48d9cc9b2dfb9219ff86d240417b 100644 GIT binary patch delta 2337 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 Hu0mjf-{M}s diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 23bc35b251f..eefdecfd00c 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -186,6 +186,8 @@ std::string get_dir(const std::string& dir_path) if(dir == NULL) return ""; + + closedir(dir); #endif return dir_path; diff --git a/src/game_events.cpp b/src/game_events.cpp index 9b6e3a3607b..4b0a86e1442 100644 --- a/src/game_events.cpp +++ b/src/game_events.cpp @@ -433,9 +433,10 @@ bool event_handler::handle_event_command(const queued_event& event_info, const s //the visual effect else if(cmd == "move_unit_fake") { const std::string& type = cfg["type"]; + const unit_race::GENDER gender = cfg["gender"] == "female" ? unit_race::FEMALE : unit_race::MALE; const game_data::unit_type_map::const_iterator itor = game_data_ptr->unit_types.find(type); if(itor != game_data_ptr->unit_types.end()) { - unit dummy_unit(&itor->second,0,false,true); + unit dummy_unit(&itor->second,0,false,true,gender); const std::vector xvals = config::split(cfg["x"]); const std::vector yvals = config::split(cfg["y"]); std::vector path; diff --git a/src/gamestatus.cpp b/src/gamestatus.cpp index 4b162a1c670..20f9ae9cf02 100644 --- a/src/gamestatus.cpp +++ b/src/gamestatus.cpp @@ -381,6 +381,7 @@ void load_game(const game_data& data, const std::string& name, game_state& state void save_game(const game_state& state) { log_scope("save_game"); + std::string name = state.label; std::replace(name.begin(),name.end(),' ','_'); @@ -389,17 +390,20 @@ void save_game(const game_state& state) write_game(state,cfg); const std::string fname = get_saves_dir() + "/" + name; +/* write_file(fname,cfg.write()); + config& summary = save_summary(state.label); extract_summary_data_from_save(state,summary); const int mod_time = static_cast(file_create_time(fname)); summary["mod_time"] = str_cast(mod_time); write_save_index(); +*/ } catch(io_exception& e) { throw gamestatus::save_game_failed(e.what()); - }; + } } namespace { @@ -450,6 +454,7 @@ void delete_save_summary(const std::string& save) void write_save_index() { + log_scope("write_save_index()"); try { write_file(get_save_index_file(),save_index().write()); } catch(io_exception& e) { diff --git a/src/log.cpp b/src/log.cpp index bac11b1afa5..a24f4e6dc19 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -13,4 +13,8 @@ #include "log.hpp" +#include + +#include + int scope_logger::indent = 0; diff --git a/src/log.hpp b/src/log.hpp index 960f1bb17ca..6103218130e 100644 --- a/src/log.hpp +++ b/src/log.hpp @@ -25,18 +25,24 @@ struct scope_logger { scope_logger(const std::string& str) : ticks_(SDL_GetTicks()), str_(str) { - for(int i = 0; i != indent; ++i) - std::cerr << " "; - ++indent; + do_indent(); std::cerr << "BEGIN: " << str_ << "\n"; + do_indent(); + ++indent; } ~scope_logger() { const int ticks = SDL_GetTicks() - ticks_; --indent; + do_indent(); + do_indent(); + std::cerr << "END: " << str_ << " (took " << ticks << "ms)\n"; + } + + void do_indent() + { for(int i = 0; i != indent; ++i) std::cerr << " "; - std::cerr << "END: " << str_ << " (took " << ticks << "ms)\n"; } private: diff --git a/src/playturn.cpp b/src/playturn.cpp index ef71c9c6cba..a680cf63e93 100644 --- a/src/playturn.cpp +++ b/src/playturn.cpp @@ -162,7 +162,7 @@ void turn_info::turn_slice() tooltips::process(mousex,mousey,mouse_flags & SDL_BUTTON_LMASK); - const int scroll_threshold = preferences::fullscreen() ? 5 : 0; + const int scroll_threshold = 5; if(key_[SDLK_UP] || mousey < scroll_threshold) gui_.scroll(0,-preferences::scroll_speed()); diff --git a/src/unit.cpp b/src/unit.cpp index 9b27bad4e5a..73755c6fea1 100644 --- a/src/unit.cpp +++ b/src/unit.cpp @@ -67,8 +67,8 @@ unit_race::GENDER unit::generate_gender(const unit_type& type, bool gen) } //constructor for creating a new unit -unit::unit(const unit_type* t, int side, bool use_traits, bool dummy_unit) : - gender_(generate_gender(*t,use_traits)), +unit::unit(const unit_type* t, int side, bool use_traits, bool dummy_unit, unit_race::GENDER gender) : + gender_(dummy_unit ? gender : generate_gender(*t,use_traits)), type_(t->get_gender_unit_type(gender_)), state_(STATE_NORMAL), hitpoints_(type_->hitpoints()), maxHitpoints_(type_->hitpoints()), diff --git a/src/unit.hpp b/src/unit.hpp index 659cc36e3a6..2d9e06967a1 100644 --- a/src/unit.hpp +++ b/src/unit.hpp @@ -32,7 +32,7 @@ public: friend struct unit_movement_resetter; unit(const game_data& data, const config& cfg); - unit(const unit_type* t, int side, bool use_traits=false, bool dummy_unit=false); + unit(const unit_type* t, int side, bool use_traits=false, bool dummy_unit=false, unit_race::GENDER gender=unit_race::MALE); //a constructor used when advancing a unit unit(const unit_type* t, const unit& u);