Page 1 of 1

Shame/Despise?

Posted: Sat May 23, 2009 2:15 pm
by Philia
While I am loving this game so much, and am blessed that Exult is running it perfectly thus far. I'm close to finishing this great game and just before getting that Cube, I figured I might as well as explore EVERYWHERE as I can. Just to complete the fulfilling enjoyment from this game of course.

And yes, I'm using a plenty of FAQs and maps to check out where I need to explore and which location I may be missing (ahoy Amroisa's cave secret room!), and I'm awful confused about this two dungeons that are NW of Britain.

A LOT of walkthroughs are referring the Selwyn's Dungeon (where the Sphere is) as Despise but yet I just read in a Wiki (hence that's why I'm asking here, just for further confirmation) that its actually referred to as Shame! O.o' So I'm terribly confused about which information to rely on for the actual dungeon of Despise (which I'm running about in right now).

I'm also surprised that when I first entered this particular dungeon, none of the party members said anything. Which confirmed what Wiki said, whereas the dungeon further south of it was referred as Despise...

Minding all that, in the proper northern dungeon of the two, I'm stuck in trying to find a key (K and P hot keys no go) to open the two doors that is blocking a deceased, a spear and a backpack. And there is a well on the left of this locked section of the hallway if that helps. And strangely there's this teleporter/staircase a bit SE of this section of the dungeon that I'm hoping to access as well... any pointers would be so greatly helpful. Thanks in advance.

Re: Shame/Despise?

Posted: Sat May 23, 2009 2:21 pm
by Lathlas
The Sphere dungeon is *supposed* to be Shame but it's not. That's where Shame is in every other Ultima. Origin just made a mistake with U7 and swapped Shame and Despise. Any in-game reference to Despise means the Sphere dungeon by Lost Lake. I'm pretty sure any maps or walkthroughs will refer to it as Despise as well.

So, for the purposes of Ultima 7 Selwyn's Dungeon is Despise and the Dungeon in the mountains behind Britain is Shame.

Re: Shame/Despise?

Posted: Sun May 24, 2009 1:10 am
by Wizardry Dragon
"Oops", indeed :-)

Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca

Re: Shame/Despise?

Posted: Sun May 24, 2009 7:25 am
by alagner
Makes me wonder - is it possible to fix this in some mod? I mean renaming one of the "Despises" to Shame.
How about including that into Keyring Mod?

Re: Shame/Despise?

Posted: Sun May 24, 2009 10:21 am
by Lathlas
First off, one of the "Despises" *is* named dungeon Shame, it's just the wrong one.

Not sure what you'd have to fix. The string where your party member's say "This is Dungeon Shame/Despise", when the Time Lord tells you where the Sphere Generator is, and when Rudyom tells you where his magic carpet is.

Does anyone know if there are any other references to either dungeon in-game?

Re: Shame/Despise?

Posted: Sun May 24, 2009 11:30 am
by alagner
>>First off, one of the "Despises" *is* named dungeon Shame, it's just the wrong one.

I know, that the 'flying carpet entrance' should be Shame [as in previous Ultimas]. But I believe there's no in-game reference to Shame at all.


By renaming I meant changing Shamino's words "This is Dungeon Despise" into "This is Dungeon Shame" for the one with the magic carpet. And Rudyom's/Time Lord's phrase also. :) Maybe I haven't pointed that out clearly, then - sorry. But I meant exactly the same thing as you did, Lathlas.

Btw, completing the "real" Despise makes you appear near the fire shooting monolith near 'carpet entrance' so it makes things a little more complicated about the names.

Re: Shame/Despise?

Posted: Sun May 24, 2009 11:46 am
by Lathlas
I meant exactly the same thing as you did, Lathlas.
I know you did, I was agreeing with you. I was just trying to pin down exactly what strings needed to be fixed.

What do you mean by "completing" the real Despise?

Re: Shame/Despise?

Posted: Sun May 24, 2009 12:30 pm
by alagner
>>I know you did, I was agreeing with you. I was just trying to pin down exactly what strings needed to be fixed.

Ok, great that everything's clear now.


>>What do you mean by "completing" the real Despise?
AFAIR in Despise there's a sort of intersection, where from you can get to certain parts of the dungeon. After getting through every single one you get back to that intersection, but in one case you get teleported north of that fire-shooter, at least that's what I remember...

Re: Shame/Despise?

Posted: Sun May 24, 2009 2:41 pm
by Lathlas
I just tooled around *ACTUAL* Despise for a minute. There are several teleporters that take you to some interesting locations. A couple of them do wind up in the Sphere Dungeon, but just as many wind up in other random spots.

I guess that can just be a random annoyance.

I'll look at doing some dialogue fixes, and see if it's as easy as it sounds.

Re: Shame/Despise?

Posted: Sun May 24, 2009 3:47 pm
by Lathlas
Moving the Despise egg from the Sphere dungeon to the real Despise is pretty easy.

It's usecode 0x621 for the egg, and quality 10 for Despise.

There don't seem to be any party interjection tags for Wrong, Shame or Hythloth.

Qualities 1,2,3 & 8 all seem to be blank so maybe the missing dungeons could be written for them. Hythloth may or may not be necessary, it's kind of a judgement call whether the Black Gate is in Hythloth or not.

Re: Shame/Despise?

Posted: Sun May 24, 2009 4:24 pm
by alagner
Isn't also the abandoned mine near Minoc supposed to be Covetous?

Re: Shame/Despise?

Posted: Sun May 24, 2009 4:44 pm
by Lathlas
The abandoned mine north of Minoc (old number one) isn't Covetous. The current Minoc mine is. There's an egg at the main eastern entrance saying "This is the Minoc Mine" and no egg at all at the western entrance.

I think I'd leave the Minoc Mine egg alone, and put a Covetous egg at the western entrance. That way it's more apparent that the mine just dug into Covetous rather than being built on top of it.

Re: Shame/Despise?

Posted: Mon Apr 03, 2017 10:03 pm
by Knight Captain
Someone emailed me for help on editing this egg. Here's the code I semi-converted if anyone wants to fully fix it later:
// externs
extern var Func0931 0x931 (var var0000, var var0001, var var0002, var var0003, var var0004);
extern var Func0900 0x900 ();
extern var Func08F7 0x8F7 (var var0000);

void eggLocationBarks object#(0x621) ()
{
var what_to_say;
var egg_quality;
var which_npc_talks;
var say_with_face;
var var0004;

if (event == EGG)
{
what_to_say = "";
egg_quality = UI_get_item_quality(item);
which_npc_talks = item;
say_with_face = false;

if (egg_quality == 0)
{
what_to_say = "@Welcome, Avatar.@";
say_with_face = false;
}
else if (egg_quality == 1)
{
if (gflags[0x0157])
{
what_to_say = "Perhaps thou shouldst use the crystal ball.";
which_npc_talks = 0xFE9B;
say_with_face = true;
}
else
abort;
}
else if (egg_quality == 2)
{
what_to_say = "Are we there yet?";
which_npc_talks = SPARK;
say_with_face = false;
}
else if (egg_quality == 3)
{
what_to_say = "I could use a drink.";
which_npc_talks = 0xFFFC;
say_with_face = false;
}
else if (egg_quality == 4)
{
what_to_say = "I am too old for this.";
which_npc_talks = IOLO;
say_with_face = false;
}
else if (egg_quality == 5)
{
what_to_say = "I heard something!";
which_npc_talks = 0xFE9B;
say_with_face = false;
}
else if (egg_quality == 6)
{
what_to_say = "Oh no! Not more rain!";
which_npc_talks = IOLO;
say_with_face = false;
}
else if (egg_quality == 7)
{
what_to_say = "We could use swamp boots!";
which_npc_talks = IOLO;
say_with_face = false;
}
else if (egg_quality == 8)
{
what_to_say = "When can we rest?";
which_npc_talks = SPARK;
say_with_face = false;
}
else if (egg_quality == 9)
{
what_to_say = "This is Dungeon Destard.";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 10)
{
what_to_say = "This is Dungeon Despise.";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 11)
{
what_to_say = "This is Dungeon Deceit.";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 12)
{
what_to_say = "This is Bee Cave.";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 13)
{
what_to_say = "This is the Minoc Mine.";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 14)
{
what_to_say = "This is the Vesper Mine.";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 15)
{
what_to_say = "This looks interesting.";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 16)
{
what_to_say = "This place is creepy.";
which_npc_talks = 0xFE9B;
say_with_face = false;
}
else if (egg_quality == 17)
{
what_to_say = "Wow...!";
which_npc_talks = 0xFE9B;
say_with_face = false;
}
else if (egg_quality == 18)
{
what_to_say = "Let's sing a sea shanty!";
which_npc_talks = IOLO;
say_with_face = false;
}
else if (egg_quality == 19)
{
what_to_say = "Let us win some gold!";
which_npc_talks = 0xFFFC;
say_with_face = false;
}
else if (egg_quality == 20)
{
what_to_say = "Avatar, they are doing a play about thee!";
which_npc_talks = IOLO;
say_with_face = true;
}
else if (egg_quality == 21)
{
what_to_say = "Britain sure is big!";
which_npc_talks = SPARK;
say_with_face = false;
}
else if (egg_quality == 22)
{
what_to_say = "Be most careful. Who knows what may be lurking amongst the trees...";
which_npc_talks = 0xFE9B;
say_with_face = true;
}
else if (egg_quality == 23)
{
what_to_say = "Brushed up on thy Gargish?";
which_npc_talks = 0xFE9B;
say_with_face = false;
}
else if (egg_quality == 24)
{
what_to_say = "Real fighters live here!";
which_npc_talks = 0xFFFC;
say_with_face = false;
}
else if (egg_quality == 25)
{
what_to_say = "Thy old relics are here!";
which_npc_talks = IOLO;
say_with_face = false;
}
else if (egg_quality == 26)
{
what_to_say = "That bread smells good...";
which_npc_talks = SPARK;
say_with_face = false;
}
else if (egg_quality == 27)
{
what_to_say = "That food smells good...";
which_npc_talks = SPARK;
say_with_face = false;
}
else if (egg_quality == 28)
{
what_to_say = "That fruit looks good...";
which_npc_talks = SPARK;
say_with_face = false;
}
else if (egg_quality == 29)
{
what_to_say = "I am getting sleepy...";
which_npc_talks = SPARK;
say_with_face = false;
}
else if (egg_quality == 30)
{
what_to_say = "The Shrine of Compassion!";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 31)
{
what_to_say = "The Shrine of Honesty!";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 32)
{
what_to_say = "The Shrine of Justice!";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 33)
{
what_to_say = "The Shrine of Spirituality!";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 34)
{
what_to_say = "The Shrine of Honor!";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 35)
{
what_to_say = "The Shrine of Valor!";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 36)
{
what_to_say = "The Shrine of Sacrifice!";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 37)
{
what_to_say = "The Shrine of Humility!";
which_npc_talks = SHAMINO;
say_with_face = false;
}
else if (egg_quality == 38)
{
what_to_say = "Watch for bridge trolls.";
which_npc_talks = 0xFE9B;
say_with_face = false;
}
else if (egg_quality == 39)
{
what_to_say = "Ah, home sweet home.";
which_npc_talks = IOLO;
say_with_face = false;
}
else if (egg_quality == 40)
{
what_to_say = "The noise! Agh! It hurts!";
which_npc_talks = 0xFE9B;
say_with_face = false;
}
else if (egg_quality == 41)
{
// doWeHaveOne?
if ((!Func0931(0xFE9B, 0x0001, 0x03D5, 0xFE99, 0x0000)) && gflags[0x0004])
{
what_to_say = "You left the small sphere!";
which_npc_talks = 0xFE9B;
say_with_face = true;
}
else
abort;
}
else if (egg_quality == 42)
{
if ((!Func0931(0xFE9B, 0x0001, 0x03D5, 0xFE99, 0x0001)) && gflags[0x0005])
{
what_to_say = "You left the small cube!";
which_npc_talks = 0xFE9B;
say_with_face = true;
}
else
abort;
}
else if (egg_quality == 43)
{
if ((!Func0931(0xFE9B, 0x0001, 0x03D5, 0xFE99, 0x0002)) && gflags[0x0003])
{
what_to_say = "You left the small tetrahedron!";
which_npc_talks = 0xFE9B;
say_with_face = true;
}
else
abort;
}


if (which_npc_talks == 0xFE9B)
which_npc_talks = Func0900();
else if (which_npc_talks == 0xFE9C)
abort;

if (say_with_face == 0x0000)
{
what_to_say = (("@" + what_to_say) + "@");
var0004 = Func08F7(which_npc_talks);
if (var0004)
UI_item_say(which_npc_talks, what_to_say);
}

if (say_with_face == 0x0001)
{
var0004 = Func08F7(which_npc_talks);
if (var0004)
{
UI_show_npc_face(which_npc_talks, 0x0000);
message(what_to_say);
message("");
say();
UI_remove_npc_face(which_npc_talks);
}
}
}

return;
}