Today I restarted work on this mod.
I work on this mod for Armaggeddon, to deepen my knowledge of W40K units and codexes.
And on an unannounced total conversion of Sanctus Reach to practice Archon Engine.
Both should helpfully help me deliver.
While you have the objective of this mod in the title - to release all Space Marine and Chaos legions - the summary is:
a) to allow the player to choose to play any of the 10 loyal legions/chapters in a UI
b) to allow the player to pick a company to play from this chapter, and commit it to battle
c) then to just play this setup in carry-over campaigns, with a repeating semi-randomized scenario, or simple handcrafted scenarios.
Current status:
New UI with Chapter Selection - OK
New Army Lists - In progress
Carryover campaign - In progress
I won't detail the objective any longer.
Instead I will focus during this thread on a step by step progress and your feedback.
Step One - Campaign and custom data
My first step was to get familiar again with campaign contents and variables.
Last year I worked with Squads.csv and had difficulties extending the number of squad units and attributes.
Now I want to "flank" these issues by using the persistent custom variables we have access to.
We have access to 64 campaign variables, but these can be arrays of length 8, so we have access to 512 persistent variables.
Today I'll try to:
- use these variables,
- customize them when launching the campaign,
- store there the profile of the selected new units and chapters.
Question #1 (to devs or people who can help):
on this page ( http://archonwiki.slitherine.com/index.php/Modding ) we see that a callback function is available (FUNCTION INIT_CAMPAIGN) when a new campaign is loaded or started.
However I would need a callback like that, which only works when a NEW campaign is launched, not when I reload it.
I can check that we are in the first mission but that would not be enough.
Are there other campaign callback functions available, and is there one for that?
[Mod Restart] All Space Marine and Chaos Marine Chapters
[Mod Restart] All Space Marine and Chaos Marine Chapters
Last edited by Aekar on Wed Jul 11, 2018 8:47 pm, edited 9 times in total.
-
- Site Admin
- Posts: 9706
- Joined: Wed Mar 23, 2005 10:35 pm
Re: [Mod Restart] All Space Marine and Chaos Marine Chapters
You should avoid using Campaign variables, globals are a far better choice for storing persistent data, and there is no real limit to the data you can store. All globals default to zero, so you can just check some 'have I initialised' value and set everything up based on that.
Cheers
Pip
Cheers
Pip
follow me on Twitter here
Re: [Mod Restart] All Space Marine and Chaos Marine Chapters
Good luck, Aekar
Re: [Mod Restart] All Space Marine and Chaos Marine Chapters
Thanks Parallax!
I suppose that's what we say before heading into the Eye of Terror
But Pip is here to guide me through the Warp.
By the way thanks Pip, you redirected me the right way.
And just in time.
Step Two - Display new UI to pick our chapter
I must now display the ListBox to allow the player to pick a new chapter.
- I know I must create a text file in DATA/UI
- I can use example files from the original game
- I know I can use textures I see from DATA/UI/TEXTURES
- I know I can link a BSF (script) file to my TXT file describing the UI, as shown for instance in the BATTLECOMMON.TXT / BSF files.
The rest is a gray area to me.
Question #2:
How to trigger my UI from a given scenario or campaign?
I have a Campaign.BSF script, but only two callback functions.
I can also use a scenario script but the way to call my "WonderfulListBox" UI object from there escapes me.
Suppose I have a "WonderfulListBox.TXT" file and its BSF script in DATA/UI.
There is this that I extracted from AUTODOCS among all the available things with "UI" in it:
It lacks examples I think. :p
I suppose that's what we say before heading into the Eye of Terror
But Pip is here to guide me through the Warp.
By the way thanks Pip, you redirected me the right way.
And just in time.
Step Two - Display new UI to pick our chapter
I must now display the ListBox to allow the player to pick a new chapter.
- I know I must create a text file in DATA/UI
- I can use example files from the original game
- I know I can use textures I see from DATA/UI/TEXTURES
- I know I can link a BSF (script) file to my TXT file describing the UI, as shown for instance in the BATTLECOMMON.TXT / BSF files.
The rest is a gray area to me.
Question #2:
How to trigger my UI from a given scenario or campaign?
I have a Campaign.BSF script, but only two callback functions.
I can also use a scenario script but the way to call my "WonderfulListBox" UI object from there escapes me.
Suppose I have a "WonderfulListBox.TXT" file and its BSF script in DATA/UI.
There is this that I extracted from AUTODOCS among all the available things with "UI" in it:
But I would not know if I should put my text file name as "screenName", etc.ShowUIScreen(screenName, animName, textTag, [imageTags])
It lacks examples I think. :p
Last edited by Aekar on Fri Jun 29, 2018 9:13 pm, edited 2 times in total.
Re: [Mod Restart] All Space Marine and Chaos Marine Chapters
... I found a few occurrences using ShowUIScreen in the original game.
In Helpers.BSF for instance.
Going on with that for now!
In Helpers.BSF for instance.
It would seem I have my answer there - I can use the TXT file name right away - but maybe you have the insight to tell me if I am making things the bad way.// show the info UI popup
ShowUIScreen("UnitInfoPopup", "anim", "dummy") ;
Going on with that for now!
Re: [Mod Restart] All Space Marine and Chaos Marine Chapters
I need some advice on textures.
LISTBOX documentation on the wiki( http://archonwiki.slitherine.com/index.php/UI ) says about the LISTBOX object:
a) What textures should be put there in CONTROLTEX, FRAMETEX etc? I tried to re-use textures "listcontrol", "listsel", "listbox" files (TGA or DDS) with no success.
b) How to use the TABLE element? To fill my items I tried to use AddUIListBoxItem() but so far no success, so the TABLE option could be more effective.
c) I created a script SCENUI_XXX.BSF (in DATA/UI) and put instructions in a function UI_OBJ_INIT(). I put my AddUIListBoxItem() there. I cannot confirm it is executed.
Difficulties and workarounds:
- ShowUIScreen never managed to work as I expected.
- The UI documentation in the wiki ( http://archonwiki.slitherine.com/index.php/UI ) does not mention such script functions; but I found them by delving through game files.
- To display the UI objects I declared, I settled with a solution I used last year: this is what I used to create working battle briefings.
I put UI objects in a script named SCENUI_XXX.TXT, where XXX is your scenario name.
That script is automatically checked and activated when a scenario XXX is launched.
Now my UI is accessed and played!
But:
- UI is displayed as a buggy-textured Listbox; please check question (a) above.
- I also need to fill the listbox with content; please check question (b) above. The UI wiki does not mention how we do this, so I am making trials and errors. Mostly errors, then
Thanks a ton!
Question #3:
I created a script SCENUI_XXX.BSF and put instructions in a function UI_OBJ_INIT().
I put my AddUIListBoxItem() there.
Looks like this:
0 is the user data (I saw game files using numerics here).
My Chapter" It is correct?
I use AddUIListboxItem(), and placed
It seems that the quest to have a funtioning UI tied to our game data will be long to complete!
LISTBOX documentation on the wiki( http://archonwiki.slitherine.com/index.php/UI ) says about the LISTBOX object:
So:CONTROLTEX <filename>
Required, contains all the various listbox controls. The texture is laid out as follows:
Up scroll arrow - top left
Down scroll arrow - top right
Scrollbar - bottom left (this is stretched to the height of the listbox)
Scroll nub - bottom right
FRAMETEX <filename> - used for the listbox frame
SELTEX <filename> - selection display, this is stretched across the width of the selection box
BUTTONTEX <filename> - applied to element in the listbox, texture layout is the same as a BUTTON type
TEXTLEFT <value>
TEXTTOP <value>
TEXTWIDTH <value>
TEXTHEIGHT <value>
Screen placement values for the actual text list, absolute if list is placed absolutely, relative to list if object is placed relatively
FONT <fontname> - the font of the listbox item text
COLOUR <colour> - the colour of the listbox item text.
BARSIZE <value> - Sets the size of the scrollbar. Default value is 32.
ITEMSPACING <value> - spacing between listbox items (vertical or horizontal depending on type of listbox), default value is 0
ITEMSIZE <value> - the size of the listbox items (vertical or horizontal depending on type of listbox), default is the height of one line of text for vertical listboxes and the max width to fit all items for horizontal listboxes
ITEMKEEPSQUARE - causes the scaling of ITEMSPACING and ITEMSIZE to maintain the item layout aspect ratio at non-4:3 resolutions
HORIZONTAL - causes the items to be displayed horizontally across the listbox, only the arrow elements of CONTROLTEX are used (and rotated) for left/right scrolling
MULTISELECT - allows multiselection in list with standard Ctrl and Shift click modifiers, use IsUIListboxItemSelected to test selections
AUTOSCROLL - scroll to the bottom of the list when new items are added
MAXSCROLL <value> - limit on the number of lines scrolled by the mouse wheel
TEXTMODE - mode for showing multiline text entries
MULTILINE <0/1> - allow wrapped, multiline text in listbox items, default 0 (note, this is different than a TEXTMODE listbox,
you will likely need to adjust ITEMSIZE to actually make room to display multiple lines in a single item)
CENTER <0/1> - horizontally center text on listbox items, default 0 unless a BUTTONTEX is also given
VCENTER <0/1> - vertically center text on listbox items, default 0 unless a BUTTONTEX is also given
AUTOTOOLTIP <0/1> - if an item is too wide to display in the listbox using standard drawing and no tooltip is given,
automatically show the item string as the tooltip
TABLE <headerID> - draw the listbox as a table with a header and aligned columns, items and the string referenced by headerID are
treated as tab (\t) delimited rows, behaviour may also be activated or updated using the SetUIListboxTable command
LISTALIGN <alignment> - when there are not enough items to fill the visible listbox, align the items to the "CENTER" or "BOTTOM" (or
"RIGHT") of the listbox
a) What textures should be put there in CONTROLTEX, FRAMETEX etc? I tried to re-use textures "listcontrol", "listsel", "listbox" files (TGA or DDS) with no success.
b) How to use the TABLE element? To fill my items I tried to use AddUIListBoxItem() but so far no success, so the TABLE option could be more effective.
c) I created a script SCENUI_XXX.BSF (in DATA/UI) and put instructions in a function UI_OBJ_INIT(). I put my AddUIListBoxItem() there. I cannot confirm it is executed.
Difficulties and workarounds:
- ShowUIScreen never managed to work as I expected.
- The UI documentation in the wiki ( http://archonwiki.slitherine.com/index.php/UI ) does not mention such script functions; but I found them by delving through game files.
- To display the UI objects I declared, I settled with a solution I used last year: this is what I used to create working battle briefings.
I put UI objects in a script named SCENUI_XXX.TXT, where XXX is your scenario name.
That script is automatically checked and activated when a scenario XXX is launched.
Now my UI is accessed and played!
But:
- UI is displayed as a buggy-textured Listbox; please check question (a) above.
- I also need to fill the listbox with content; please check question (b) above. The UI wiki does not mention how we do this, so I am making trials and errors. Mostly errors, then
Thanks a ton!
Question #3:
I created a script SCENUI_XXX.BSF and put instructions in a function UI_OBJ_INIT().
I put my AddUIListBoxItem() there.
Looks like this:
IDS_TOOLTIP_SELECTCHAPTER is a referenced string.FUNCTION UI_OBJ_INIT()
{
AddUIListboxItem("SCEN00_MyListBox", "FFFFFFFF", IDS_TOOLTIP_SELECTCHAPTER, 0, "My Chapter", 0);
}
0 is the user data (I saw game files using numerics here).
My Chapter" It is correct?
I use AddUIListboxItem(), and placed
It seems that the quest to have a funtioning UI tied to our game data will be long to complete!
-
- Site Admin
- Posts: 9706
- Joined: Wed Mar 23, 2005 10:35 pm
Re: [Mod Restart] All Space Marine and Chaos Marine Chapters
Check the game UI files for existing listbox setups, the textures are user created, and so if you want to use the existing ones you will need to check working listboxes (e.g the loadsave list etc).
You can read documentation on all script commands in the autodocs (My Documents/My Games/SANCTUS/AUTODOCS/Battlescript.txt).
Cheers
Pip
You can read documentation on all script commands in the autodocs (My Documents/My Games/SANCTUS/AUTODOCS/Battlescript.txt).
Cheers
Pip
follow me on Twitter here
Re: [Mod Restart] All Space Marine and Chaos Marine Chapters
Thank you Pip.
I'll confess that was what I was doing already; I hoped to have something like "a psychic revelation" to save some trial and error
But in the end, thanks to this trial and error, I lost much time but gained some better understanding of how things work.
I eventually got hold of how the UI work in scrpting.
I reached the point where I can select my chapter and can generate more UIs on the fly.
now that we can select a chapter and have some description, let's get to what follows:
Step Three - Customize Army List from Chapter
I hope to complete that part soon, however I am taking interest again on Warhammer Armageddon modding so I will spend some time there too!
I'll confess that was what I was doing already; I hoped to have something like "a psychic revelation" to save some trial and error
But in the end, thanks to this trial and error, I lost much time but gained some better understanding of how things work.
I eventually got hold of how the UI work in scrpting.
I reached the point where I can select my chapter and can generate more UIs on the fly.
now that we can select a chapter and have some description, let's get to what follows:
Step Three - Customize Army List from Chapter
I hope to complete that part soon, however I am taking interest again on Warhammer Armageddon modding so I will spend some time there too!
-
- Private First Class - Opel Blitz
- Posts: 3
- Joined: Sat Feb 11, 2017 10:40 am
Re: [Mod Restart] All Space Marine and Chaos Marine Chapters
Hi, How are things coming along
Re: [Mod Restart] All Space Marine and Chaos Marine Chapters
Any mods..at all?