Recall list deleted/not filled up bug

The place to post your WML questions and answers.

Moderators: Forum Moderators, Developers

Forum rules
  • Please use [code] BBCode tags in your posts for embedding WML snippets.
  • To keep your code readable so that others can easily help you, make sure to indent it following our conventions.
Post Reply
User avatar
s1m0n1nl33t
Posts: 18
Joined: May 7th, 2020, 1:55 pm

Recall list deleted/not filled up bug

Post by s1m0n1nl33t »

Hello,

As the title says, I have a problem that in the campaign I am making right now my units don't get transferred between scenarios, as the recall list would do normally. I mostly didn't do any experimental things, for example here code of sc2:

Code: Select all

#textdomain wesnoth-tpts

[scenario]
	id=scenario_2
	next_scenario=scenario_3
	name= _ "2.0"
	map_data="{~add-ons/The_Path_To_Sorcery/maps/2.0.map}"
	turns=20
	random_start_time=yes

	[side]
		side=1
		controller=human
		team_name="good"
		user_team_name= _ "good"
		
		[leader]
			id=myleader
			name= _ "Bob"
			type=Poacher
			unrenameable=yes
		[/leader]
		
		recruit="Peasant, Ruffian, Woodsman"
		gold=50
		
		[unit]
			id=myboi
			name= _ "Boi"
			unrenamable=yes
			type=Bandit
			canrecruit=yes
			profile="portraits/humans/ruffian.png"

			{IS_HERO}
			[modifications]
				{TRAIT_INTELLIGENT}
				ellipse=none
			[/modifications]			
			x=14
			y=4
		[/unit]
	[/side]

	[side]
		side=2
		controller=ai
		team_name="good"
		user_team_name= _  "good"
	
		[leader]
			id=soras
			type=Elvish Lord
			name= _ "Soras"

			advances_to=null
			{AMLA_DEFAULT}

			[modifications]
				{TRAIT_AGED}
			[/modifications]
		[/leader]

		recruit="Elvish Archer, Elvish Fighter"
		gold=50

		{FLAG_VARIANT wood-elvish}

		# placeholder for desert elves

		[ai]
			passive_leader=yes
		
			[goal]
				name=protect_unit
				[criteria]
					side=2
					canrecruit=yes
				[/criteria]
				protect_radius=6
				value=5
			[/goal]
		[/ai]
	
		[unit]
			type=Elvish Hero
			x=6
			y=26
			max_moves=0
			
			[modifications]
				{TRAIT_LOYAL}
				{TRAIT_FEARLESS}
			[/modifications]
			
			{IS_LOYAL}
		[/unit]

		[unit]
			type=Elvish Hero
			x=9
			y=26
			max_moves=0
			
			[modifications]
				{TRAIT_LOYAL}
				{TRAIT_FEARLESS}
			[/modifications]
			
			{IS_LOYAL}
		[/unit]
		[unit]
			type=Elvish Hero
			x=12
			y=26
			max_moves=0

			[modifications]
				{TRAIT_LOYAL}
				{TRAIT_FEARLESS}
			[/modifications]
			
			{IS_LOYAL}
		[/unit]
	[/side]

	[side]
		side=3
		controller=ai
		team_name="bad"
		user_team_name= _ "bad"

		[leader]
			id="notleader"
			type=Dark Adept
		[/leader]

		gold=150
		recruit="Dark Adept, Blood Bat"

		{FLAG_VARIANT undead}

		[unit]
			type=Blood Bat
			x=7
			y=22
			experience=17
		[/unit]
		[unit]
			type=Dark Adept
			x=4
			y=25
			experience=9
			hitpoints=23
		[/unit]
	[/side]

	[event]
		name=prestart
		[objectives]
			[objective]
				description= _ "Defeat the enemy leader"
				condition=win
			[/objective]			
			[objective]
				description= _ "Death of Bob"
				condition=lose
			[/objective]
			[objective]
				description= _ "Death of Boi"
				condition=lose
			[/objective]
			[objective]
				description= _ "Death of man"
				condition=lose
			[/objective]	
			[gold_carryover]
				bonus=yes
				carryover_percentage=40
			[/gold_carryover]
		[/objectives]
		
		[capture_village]
			side=2
			x, y=12, 30
		[/capture_village]
		[capture_village]
			side=2
			x, y=16, 25
		[/capture_village]
		[capture_village]
			side=2
			x, y=17, 19
		[/capture_village]	

		[capture_village]
			side=3
			x, y=4, 25
		[/capture_village]
		[capture_village]
			side=3
			x, y=7, 21
		[/capture_village]
	[/event]

	[event]
		name=enemies defeated

		[endlevel]
			result=victory
			bonus=yes
			{NEW_GOLD_CARRYOVER 40}
		[/endlevel]
	[/event]
	{~add-ons/The_Path_To_Sorcery/utils/deaths.cfg}
[/scenario]
Is there anything I could have overlooked?

s1m0n
s1m0n1nl33t

User avatar
WhiteWolf
Forum Regular
Posts: 624
Joined: September 22nd, 2009, 7:48 pm
Location: Hungary

Re: Recall list deleted/not filled up bug

Post by WhiteWolf »

The first thing I'd try is to get rid of the [leader] subtags, in both scenarios, for all sides.
Reason why: recall lists are transferred between persistent sides, which is the default for human player sides with a proper save_id. The way you set up such a side is by defining a leader directly in the side tag.

Code: Select all

[side]
	side=1
	id=myleader 
	name= _ "Bob"
	type=Poacher
  	unrenameable=yes
        <... rest of your stuff>
[/side]
Then, when in the next scenario, you state your side in the same way, meaning it again has the same leader data in the side tag, the game will look for a persistent side with having this leader, and if its found, it is transferred along with its recall list. If not found, a new side is created.
Now I'm not sure what an explicit [leader] tag does, so I had to look it up, and I think it's just an alias for [unit]canrecruit=yes. Which means, it will technically create a unit that can recruit, and that's it - so the unit won't be assigned as the "leader" of the team, so it's not being looked for in the next scenario (save_id is unknown). That's why a new side is created for you.
Author of the Underness Series, consisting of V parts: The Desolation of Karlag, The Blind Sentinel, The Stone of the North, The Invasion Of The Western Cavalry, Fingerbone of Destiny
Standalone works: The Ravagers - now for 1.14, with new bugs!

User avatar
s1m0n1nl33t
Posts: 18
Joined: May 7th, 2020, 1:55 pm

Re: Recall list deleted/not filled up bug

Post by s1m0n1nl33t »

Thank you!
It did the job, exactly that was why the game was getting confused. Does that mean, I can use the [leader] tag for Boi, who should be equal to Bob but is only a hero with canrecruit=yes at the moment to get him equal to Bob?

s1m0n
s1m0n1nl33t

gfgtdf
General Code Maintainer
Posts: 1331
Joined: February 10th, 2013, 2:25 pm

Re: Recall list deleted/not filled up bug

Post by gfgtdf »

WhiteWolf wrote:
July 3rd, 2020, 9:25 am
The first thing I'd try is to get rid of the [leader] subtags, in both scenarios, for all sides.
Reason why: recall lists are transferred between persistent sides, which is the default for human player sides with a proper save_id. The way you set up such a side is by defining a leader directly in the side tag.

Code: Select all

[side]
	side=1
	id=myleader 
	name= _ "Bob"
	type=Poacher
  	unrenameable=yes
        <... rest of your stuff>
[/side]
Then, when in the next scenario, you state your side in the same way, meaning it again has the same leader data in the side tag, the game will look for a persistent side with having this leader, and if its found, it is transferred along with its recall list. If not found, a new side is created.
Now I'm not sure what an explicit [leader] tag does, so I had to look it up, and I think it's just an alias for [unit]canrecruit=yes. Which means, it will technically create a unit that can recruit, and that's it - so the unit won't be assigned as the "leader" of the team, so it's not being looked for in the next scenario (save_id is unknown). That's why a new side is created for you.
technicially there is no leader of the team, only untis with canrecruit=yes.

you can use [leader] but then you have to explicitly set save_id= to the same value to your side in all scenarios (save_id can but doesnt have to be the same value as the leaders id)
Scenario with Robots SP scenario (1.11/1.12), allows you to build your units with components, PYR No preperation turn 1.12 mp-mod that allows you to select your units immideately after the game begins.

User avatar
s1m0n1nl33t
Posts: 18
Joined: May 7th, 2020, 1:55 pm

Re: Recall list deleted/not filled up bug

Post by s1m0n1nl33t »

thanks!
I'll just leave it out for now, is the simpler solution
s1m0n1nl33t

Post Reply