dock screen refusing to let me over write it..7.1

Freeform discussion about anything related to modding Transcendence.
Post Reply
shanejfilomena
Fleet Officer
Fleet Officer
Posts: 1533
Joined: Tue Mar 22, 2011 8:43 pm
Location: Alaska
Contact:

I have spent the better part of the weekend trying to get a screen to accept a new text :
it refuses.

I have changed many screens ...this is the FIRST time one has refused to obey.

Has anyone else encountered this?

I know what I will do......it's more then I wanted to do, but it's the only way at the moment.
( ordering the game to swap out the screen , if it doesn't work on 7.1, I will need a new mouse trap )

I was just wondering if It was " just me "
Flying Irresponsibly In Eridani......

I don't like to kill pirates in cold blood ..I do it.. but I don't like it..
gunship256
Militia Commander
Militia Commander
Posts: 451
Joined: Sat Jul 25, 2015 11:41 pm
Location: repairing armor

I have, but indirectly. The very useful mod Identify Before Buying and Selling sort of worked in 1.6 in that I could identify items before selling them, but the part that was supposed to let me identify items before buying them was broken.

Now, in 1.7 alpha, both the buying and selling parts are broken. The links that are supposed to be added to shops' dockscreens don't even show up.

I've thought about fixing the mod, but it's beyond my ability at the moment, especially since I don't know why updating to 1.7 would cause the problem.

http://xelerus.de/index.php?s=mod&id=1106
shanejfilomena
Fleet Officer
Fleet Officer
Posts: 1533
Joined: Tue Mar 22, 2011 8:43 pm
Location: Alaska
Contact:

Well, I found the "Problem" , it's not an ordinary problem...it's part of what we all need..

Backwards compatibility.

There is more then one version of the screen in the game : while I over-wrote the one, the game will call the other if the over- write isn't done as well as it should be .

the modern game calls for "&RPG" screens : older screens mostly still exist and
( in theory based on what I experienced this weekend and just now "fixed")
if the other is edited and not very well done
( I was only testing it, I wasn't exactly finished with it yet )
the older screen will kick in and take the place of the newer version.

I fixed the problem by searching for the older screen & putting my text into it as well as text into the new "&RPG" screen: problem solved.

I did have my stations set items known : but it wasn't for the dockscreen things, it was just station code for the items in that particular station.

However, your " problem " is the same: it only hits on One screen

Code: Select all

<!--This statement uses "aScreenUNID" a type of global identifier.-->
	(or (eq aScreenUNID &dsExchangeBuy;)(eq aScreenUNID &dsExchangeSell;)) 
						


you need to edit the code to include the "&RPG" versions of those screens.
Flying Irresponsibly In Eridani......

I don't like to kill pirates in cold blood ..I do it.. but I don't like it..
relanat
Militia Captain
Militia Captain
Posts: 941
Joined: Tue Nov 05, 2013 9:56 am

This is as close as I've got to the compatibility problem with the Identify mod. I think it doesn't work because the game doesn't refer to dsExchangeSell (or Buy) anymore but uses another function (scrShowSellScreen) somehow. I ran out of time to get any further. Info from anyone on how to do this would be great. scrShowSellScreen isn't listed in the 1.7 function list.
This is from StdDockScreens.xml in 1.7a1a Trans_Source

Code: Select all

 
<!-- Commodities Exchange

      NOTE: Use the scrShowSellScreen function instead of showing
      this screen directly.

      gMargin: This is the discount as a percentage of the item price.
      gMaxPrice: Max price that station will pay for any item.
      gTitle: Title for screen (or Nil for station name)
      
      gResult: Incremented with the total value sold

      -->

   <DockScreen UNID="&dsExchangeSell;"
         name=            "=(if gTitle gTitle (objGetName gSource 0x400))"
         type=            "itemPicker"
         nestedScreen=      "true"
         >

Stupid code. Do what I want, not what I typed in!
gunship256
Militia Commander
Militia Commander
Posts: 451
Joined: Sat Jul 25, 2015 11:41 pm
Location: repairing armor

shanejfilomena wrote:However, your " problem " is the same: it only hits on One screen

Code: Select all

<!--This statement uses "aScreenUNID" a type of global identifier.-->
	(or (eq aScreenUNID &dsExchangeBuy;)(eq aScreenUNID &dsExchangeSell;)) 
						


you need to edit the code to include the "&RPG" versions of those screens.
You're right! The dockscreens are in RPGDockScreens.xml, and it does look like they have changed since the original Identify Before Buying and Selling mod was written.

Here's the original forum thread for the mod, written by the mod's author:
https://forums.kronosaur.com/viewtopic. ... &view=next

Here's the modified version of the mod, which works in Transcendence 1.7 alpha:
IdentifyScreen.xml
(4.61 KiB) Downloaded 232 times
Here's the modification I made to the code to get the mod to work again. Thanks very much for your help!

Code: Select all

						<!--This statement uses "aScreenUNID" a type of global identifier.-->
						<!-- 
						2016 03 24 EDIT by gunship256: changed the dockscreens in the line below to dsRPGCommoditiesExchangeBuy and
						dsRPGCommoditiesExchangeSell. The original version of this mod used dockscreens that are no longer called by the
						game, which is why the Identify Before Buying and Selling mod stopped working.
						Thanks to shanejfilomena for pointing this out!
						-->
						(or (eq aScreenUNID &dsRPGCommoditiesExchangeBuy;)(eq aScreenUNID &dsRPGCommoditiesExchangeSell;)) 
						<!--If aScreenUNID is equal to &dsRPGCommoditiesExchangeBuy; (The Buy Screen) or &dsRPGCommoditiesExchangeSell; (The Sell Screen) then this statement returns true and calls the scrAddaction function. Otherwise it does nothing-->
shanejfilomena
Fleet Officer
Fleet Officer
Posts: 1533
Joined: Tue Mar 22, 2011 8:43 pm
Location: Alaska
Contact:

Again : Backwards Compatibility :

Code: Select all

<Events>
			<OnGlobalUniverseCreated>
				(itmEnumTypes "*" theItem (itmSetKnown theItem))
			</OnGlobalUniverseCreated>
		</Events>
I often use older versions of the exchange screen calls : Just because the " new" and shining lists do not include something, remember - to exclude = total Re-Write : something Nobody has time for .


Tested & works in 1.71A ( as it should )

<Action name="Sell Items" key="S" default="1">
(scrShowSellScreen
"*" ; items bought from player
)
</Action>

Tested & works in 1.71A ( as it should )
<Action name="Sell scrap" imageID="&rsItemListScreen;" imageIndex="1" key="S">
(block Nil
(setq gPrevScreen "Main")
(setq gTitle Nil)
(scrShowScreen gScreen "&dsExchangeSell;")
)
</Action>
George has spent years building this game, he can't re-write it every 6 months just because there is a new idea to get explicit over something such as a dockScreen.

the Older versions and orders are still there : the new orders are good, sometimes buggy, but without the older stuff included in game, millions of hours of Players pounding out ideas on their keyboards would be cast to the wind : and that's not cool .
Not to mention the fact that those works carry with them into the new age Old School solutions to sorting out New School issues.

so to say " such and such doesn't work anymore" is not accurate : it's keeping up with the Jones' : Depreciated is not dead : My job title is "Depreciated" ( they call the new kid a " Technician" , but I still get paid and I still have to go to work to get that pay ....

I love the new stuff : I appreciate all the Hard work, sleepless hours of thinking and headaches that go into them : But I love & appreciate the Work done in the past just as much.
And, I like to think , Fleet Command does too.
Flying Irresponsibly In Eridani......

I don't like to kill pirates in cold blood ..I do it.. but I don't like it..
Post Reply