UI_create_barge_object intrinsic

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
agentorangeguy
Posts: 565
Joined: Thu May 14, 2020 1:34 pm

UI_create_barge_object intrinsic

Post by agentorangeguy »

I've noticed the UI_create_barge_object intrinsic doesn't work. I tried to use it but it wasn't declared. I looked up the actual number in the exult source code and it said 0xd5 so it should be there and useable like the others, but I couldn't get it to work. Is there a reason it isn't working?
-------------------------------------------------------------------------------------
Ultima 6 Mod for Exult site: http://www.ultima6.realmofultima.com/
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

It compiled okay for me:
var avatar_position = UI_get_object_position(AVATAR);
UI_create_barge_object(8, 8, NORTH);
UI_update_last_created([avatar_position]);
I'm not able to manipulate it the same way I can with one created manually in ES. Double-clicking on the code-created one does not do anything.
agentorangeguy
Posts: 565
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by agentorangeguy »

When I use "UI_create_barge_object" it tells me 'UI_create_barge_object' not declared. I'm using BG though. hmm..
-------------------------------------------------------------------------------------
Ultima 6 Mod for Exult site: http://www.ultima6.realmofultima.com/
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

Did you check using the latest UCC.exe?

And did you create a bug for this? There's an issue with changing egg shapes as well, in that they aren't treated like they are "special" but just plain old shapes with no additional modifications available in ES. So this barge issue might be connected to that.
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by drcode »

I can see why the eggs created in Usecode don't work, and am thinking about a solution. We might need to add a 'create_egg' intrinsic.

But the barges *ought* to work, so I'm looking at that too. Something's wrong...
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

I would lean towards a new egg intrinsic rather than adding to an existing intrinsic, both for troubleshooting purposes and simplicity for modders. It would be awesome to get all egg types available this way, not just Usecode eggs.

The only correlating fact I can see between these two shapes is that they work fine when added via ES, but not via Usecode.

Your help on these things is much appreciated, DrCode.
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by drcode »

Playing around:

1. I noticed that creating a barge through the shape browser wasn't doing it correctly, so I'm fixing that.

2. But double-clicking a barge itself doesn't do anything; you need to have barge 'parts' on top of it. For example, placing a piece of the cart over the new barge and double-clicking that will execute code to find the barge, and then looks for a horse as well.

3. You probably already know that the 'e' key turns on display of eggs and barges. If the barge is created correctly, you'll see a yellow outline of its size, in addition to the red square. As a test, put a horse and a cart piece inside it and double-click one of them (BG).
agentorangeguy
Posts: 565
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by agentorangeguy »

wow didn't know that, thanks for all your work on these things DrCode!
-------------------------------------------------------------------------------------
Ultima 6 Mod for Exult site: http://www.ultima6.realmofultima.com/
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by drcode »

How useful would it be to have a UI_create_egg intrinsic? It would have to be a bit complicated, with parameters to set all the criteria, plus different ones for each egg type. Are there things you can only do this way, vs creating an egg in ES and then, say, changing its usecode function?
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

Very useful to me.
It's complicated, but more "no" than "yes".

I had requested a create-egg-via-usecode feature for a few technical reasons:
A) The mod I am doing is going to require tens of eggs. I would need to manually track and place those rather than just script them. Woe to me if I want to change them.
B) Map editing is fraught with danger, and a wrong change can require reverting and retrying. This has tripped up other modders.
C) Maps are not broken out into source code but rather use a compressed binary, so change tracking relies solely on the submitter's description. SIfixes uses an altered map, mostly due to the inn keeper key collection eggs, but there's no way to prove that via source.
D) Usecode eggs are visibly different from others, so conditional eggs for weather, monsters, etc won't stand out via map editing or show egg mode.
E) Adding many eggs from the start could have a tiny performance impact since each would need to check flags as the player walks around.
F) The only mod storyline part I have written to require egg replacement is in one of the original-but-missed caverns in the Mountains of Freedom. I may be able to change the existing eggs via usecode_array or script blocks.

Ideally we'd have multiple commands like UI_create_usecode_egg, UI_create_teleporter_egg, UI_create_spawn_egg, etc, so the syntax for each is clear. Each would have the coordinates first, then relevant inputs.

While I'd love this feature, I think as a limited resource you're more valuable fixing Combat since that impacts all players not just a few modders.
agentorangeguy
Posts: 565
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by agentorangeguy »

I agree, combat is probably the highest priority since it's the most broken and is probably the most glaring bug in all of Exult and impacts all players. But whatever you do , it's greatly appreciated! :)

I've not tried the changes yet to the barge object intrinsic yet, since i've been doing map work. As far as the U6 mod goes, I need to be able to create the barge with the proper x, y values and place it where the balloon shape would be, and have it useable with the shape. I'm not sure exactly which route I'm going for the balloon yet, but one idea is to make it similar to the magic carpet where the party would stand in the "basket", doubleclick would raise start the balloon frames to inflate the balloon then double clicking again would lower it then, then being able to deflate the balloon and pack it. The easier way would be not rendering the party once the shape is doubleclicked and a few other things to make it look nice. Both require better looking shapes from Crowley than I'm using right now for a stand in lol
-------------------------------------------------------------------------------------
Ultima 6 Mod for Exult site: http://www.ultima6.realmofultima.com/
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

How did the expansions add eggs in addition to the map changes? Might there a clue there?
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Dominus »

Didn't they just make map changes?
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

If I recall right, it was possible to install the expansions and keep going with existing saved games. So how would they update those saves?
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by drcode »

Looking through the usecode disassembly for the copy of SI+SS that I have, the only time I see an egg shape # (0113H) used is in calls to 'find_nearby'.
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

That's a valid point. I have a mostly pulled-apart version of SI+SS Usecode I can share with you.

For the UCC issue I have, I'll need to check with the latest build of Exult Tools.
agentorangeguy
Posts: 565
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by agentorangeguy »

I was thinking of some new exult intrinsics / features that could be useful. Would it be possible to make something to where you could place combos from combos.flx in Exult studio via usecode? Maybe the parameters could be something like x, y, z location to place, then # of combo in the combos.flx file. It would be fun to make randomized camps of enemies / monsters in the wilderness like that in an easy way rather than having to manually set the x, y offsets and placing individual objects, but using something like UI_place_combo that will check for space to place the combo and place the combo if true.

Other possible uses for this would be modifying the bedroll code where the Avatar makes a camp that you create in ES with the combo, and places it near the bedroll (Maybe a campfire, pot with food, etc.).

Would also be useful in creating barges maybe... instead of manually creating the barge line by line in code, you create the combo first in ES then you could place the entire combo via exult intrinsic in the code?

Would this be possible?
-------------------------------------------------------------------------------------
Ultima 6 Mod for Exult site: http://www.ultima6.realmofultima.com/
drcode
Site Admin
Posts: 2267
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by drcode »

Could be possible. Interesting idea.
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

One of the things I've written as new Usecode function is to create the SI game start boat piece by piece (at once to the player). I did hard code the placement, but it would be possible to make it either an egg and set the placements + or - based on that, or send the position coordinates and then set the placements + or - based on that. Doing something similar for the balloon or barge would be possible.

I like the idea of randomized camps!
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

I just got wiped out by a Z level height limit:
https://sourceforge.net/p/exult/bugs/1532/

The manor for Selina that I had planned is unusable due to this bug. :(
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

This is all via Usecode:
Image

This is the result of the limit on the Z-axis:
Image

The highest Z-axis point I've found in SI is the tower NW of Moonshade, with fence pieces at the top at Z-14.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Dominus »

That's odd. I think I built higher than that with Studio and it kept.
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

Highest surviving levels:
Image
agentorangeguy
Posts: 565
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by agentorangeguy »

Why did you build it via code, instead of manually? Looks pretty cool though!
-------------------------------------------------------------------------------------
Ultima 6 Mod for Exult site: http://www.ultima6.realmofultima.com/
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

To show that time had passed while the Avatar was unconscious after Batlin's death.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Dominus »

Can you confirm that it is happening with both manual and usecode building?
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

Both, via Edit Mode and via Usecode.

0x10 -> 0x0
0x11 -> 0x1
etc.

I'm also not able to save manually placed z-0 flat shapes at z-0 if there's already grass there.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Dominus »

Can you give me an easy to trigger example code? Best a mod with a savegame to trigger it. It may be a regression and I might be able to quickly test with my collection of snapshots where it broke (if it broke in the last couple of years). I'm not able to test with Exult Studio as I didn't keep OS X snapshots of that.
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

Sure, I'll email you my latest mod code.

I'm also seeing that importing PNG files into ES is not working correctly, but haven't tracked that down yet. Might be my image editor?
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Dominus »

No idea. I generally avoid that and save to shp and import from sho.

Side note, I'd rather see you start new topics than going off topic again and again (this thread is a prime example ;))
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: UI_create_barge_object intrinsic

Post by Knight Captain »

Yeah, it was GIMP. Anyway, the file is over to you.
Locked