CSBuild 0.803 and CSBwin 9.6i - Champion Portrait

Discuss Chaos Strikes Back for Windows and Linux, an unofficial port of Chaos Strikes Back to PC by Paul Stevens, as well as CSBuild, an associated dungeon editor.

Moderator: Zyx

Forum rules
Please read the Forum rules and policies before posting. You may Image to help finance the hosting costs of this forum.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

CSBuild 0.803 and CSBwin 9.6i - Champion Portrait

Post by Paul Stevens »

CSBuild Version 0.803
CSBwin version 9.6i
PortraitDoc.txt revision 2

have been posted at dianneandpaul.net/CSBwin.

These implement the expanded Champion Portrait
capabilities. They have been tested for about five
minutes. I will be doing further testing and anyone
who is interested is invited to try them out and send
me all the bug reports.

All of this is because Zyx wanted more complicated
ways of reviving champions. Be careful what you
ask for.....you might get it. :wink:
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Already I see that I got the 'Target Position' and the
graphic number confused. Changing one can change
the other. Fixed tomorrow.

Also, the Show graphic option can be turned off in the
editor but accomplishes nothing in CSBwin. Fixed
tomorrow.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Alright, the portrait editing looks quite complicated at first glance, but indeed it is very powerful and more simple than that!

If the actuator is not set to Active, could you hide the
"Block disable" check and "disable relay message " zone?

An inactive portrait actuator, with no "set active" or "toggle active" responses to messages should not appear, when checking errors, with the "Portrait without text" error.
Same remark for portraits having their text in a trick wall.
On the contrary, non-champion texts should not trick your checking into considering that the portrait has a champion text.
If there is no absolute criteria about what is a champion text, then maybe you could check for a minimal lenght.

The layout of the "edit portrait" dialog is a little tricky. I'd like to propose an alternative, with more redundance, that may be more understandable. This suggestion only aims future users, I think I already understood, so I don't request this change, I am only imagining that a poor first-time user would be discouraged about the very first operation: putting heros.
Now I don't want to look arrogant proposing a new display while you are the one putting the efforts into the coding... So tell me if you're interested.
User avatar
PicturesInTheDark
Arch Master
Posts: 1154
Joined: Mon Aug 26, 2002 4:47 pm
Location: Vienna, Austria

Post by PicturesInTheDark »

Errr... I am a poor first-time user who still has not built a single dungeon. I support the request if it's any worth.

Regards, PitD
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Zyx:

None of the pieces are complicated. The
complications lie in the combinations. And,
of course, that is in the spirit of DM...being
able to do complicated things with simple
components.

1) If not active....hide portions of dialog.

Well, I don't know. I can certainly do this.
But.....The CPA can be made active at RUNTIME.
That is one of its major features. If I hide
those portions of the dialog then you would be
forced to set it 'Active' at edit time in order
to edit those features; then set it 'InActive'
again before saving.

Moreover, I assume that you want me to do this
as a reminder to you that these controls are
not effective if the CPA is 'InActive'. But the
Block Disables **IS** effective in an InActive
CPA. This is needed to protect other Actuators
that might lie below the CPAs. Remember that
the Disable Message disables ALL Actuators.

Perhaps I could add a note or some other reminder
in the 'Disable Message' title when the CPA is
set to InActive that will indicate that the
message will not be created unless the the CPA
is made Active at runtime.

2) Error checking......

Yes. I imagine that there needs to be a lot of
work on the error checking. I have not done
anything yet.

3) Format.....

I will listen. But I have little sympathy for
someone who is unwilling to make the effort to
understand his tools. I think I provided the
defaults that make the thing work just like the
originals so that the complications can be
safely ignored. I could add an 'Advanced User'
button that hides all the new stuff.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

It seems that only weapons and armor can be cursed. Misc object don't show as "cursed" in CSBwin even with high priest level.

1) You're right. Forget about the hiding.

3) OK, here's the suggestion. Hope it is clear enough...
I could add an 'Advanced User' button that hides all the new stuff.
It would be better to add an option in the menus, so you don't have to click this button each time you edit a portrait!

Firstly I would separate the "states" from the message handling to avoid suggesting that message handling only works if the corresponding state bit is set.
So, I would have a zone like this:

------------------------------------------
Show Graphic [check] [graphic combo]

Show Portrait [check]...[portraits combo]......[Dm/CSB naming options]
..........External..[check]..[filename editbox]
Tooltiptext: "Portrait will only be visible if there is a visible graphic on this wall"
------------------------------------------

------------------------------------------
Absorb disable message [check]

Active..[check]..........
Response to disable message:....Nothing
................................................Set
................................................Clear
................................................Toggle
Tooltiptext: "active portrait can revive heros and get disabled after that"
------------------------------------------

Then I would have the message handling zones, using other words than set/clear terms to avoid suggesting that the portrait actuator will send a message. And I think it is beter to break down the combinations by message then by effect:

------------------------------------------
Response to SET message:
Active..........[Ignore]..[active]..[inactive]......[toggle]
Graphic.........[Ignore]..[show]......[hide]........[toggle]
Portrait........[Ignore]..[show]......[hide]........[toggle]
------------------------------------------
------------------------------------------
Response to CLEAR message:
Active..........[Ignore]..[active]..[inactive]......[toggle]
Graphic.........[Ignore]..[show]......[hide]........[toggle]
Portrait........[Ignore]..[show]......[hide]........[toggle]
------------------------------------------
------------------------------------------
Response to TOGGLE message:
Active..........[Ignore]..[active]..[inactive]......[toggle]
Graphic.........[Ignore]..[show]......[hide]........[toggle]
Portrait........[Ignore]..[show]......[hide]........[toggle]
------------------------------------------
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Yes, your suggestions are quite clear and make good
sense.

I have never figured out how to associate a ToolTip with
a dialog control but I see there are some hints on the
web. It is worth the effort on my part to try and do
most of the things you suggest.

I will add the edit option for 'Advanced CPA' options and
also put a control on the dialog page itself. The control will
initially be set to the value specified in the edit options and
changing the control will change the edit option. A 'remember
this setting' sort of thing.

Thanks for your time and patience.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

I created a ToolTip!!! I created a real ToolTip!!!
Talk about excitement here in Madison!!!!

Before you say it, I will......

What a NERD!
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

I posted

CSBuild 0.804 45,000 lines of code.
CSBwin9.6j 69,000 lines of code.

Total 114,000 lines of code.

============================================
Version 0.804
--Fix confusion between graphic number and target position
in Champion Portrait Actuator
--Rearrange Edit Champion Portrait dialog to make it
easier to understand and prepare for "Advanced User" option.
--Provide warning for Wall Text that is too long.
=========================================
Version 9.6j
--Survive Wall Text that is too long. Provide a single
warning and then be quiet and tolerant. Throw away excess.
--Fix confusion between graphic number and target positon
in Champion Portrait Actuator.
--Fix the 'Show Graphic' option for Champion Portrait. It
was impossible to hide the graphic.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

If you set a portrait actuator inactive, with hidden graphic and hidden portrait and with a "show graphic" response to a set message, it doesn't work.

It seems that messages on portraits on trick walls are not received.


Phew! I think I am almost done. I'll wait for PitD and Beowuuf to playtest and then I'll release the whole packet and I'll go to tibet or sahara for 10 years in complete isolation!
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

1) I'll look into that.

2) That is because FTL sends a different kind of message
to a trick wall than it sends to a wall. I'll see if I can make
the CPA respond to either type of message.

3) That dungeon is massive. You are approaching
the (artificial) 8000 object limit. Over 3000 actuators!!!
User avatar
PicturesInTheDark
Arch Master
Posts: 1154
Joined: Mon Aug 26, 2002 4:47 pm
Location: Vienna, Austria

Post by PicturesInTheDark »

The edit champion dialog looks very impressive, but is still a bit confusing to me - maybe just because of the new looks.

There is no name on the menu bar so far, just an "I".

What exactly does the "obituary message" get triggered by?

When would I want to use "block disables" as a practical example?

Regards, PitD
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

I fixed the title bar for version 0.806.

Obituary messages are sent when the CPA dies (is
Disabled). Did you read the PortraitDoc.txt? Was
it confusing somehow?

Block Disables? If you don't want all the Actuators
disabled. Say you had two portraits....You revive the
first Champion and a Disable message gets sent. It
disables the first but you still want the second to stay
around so you can revive him, too. So you set the first
to 'Block Disables'.

===========================================
Version 0.805
--Check Objects now allows Champion Portrait text
in Trick Walls.
--Check Objects now allows Champion Portrait Actuators
in Trick Walls.
--A Champion Portrait Actuator that has no chance of
becoming active at runtime no longer receives a 'Portrait
Without Text' error message.
===========================================
Version 9.6k
--Champion Portrait Actuators on Trick Walls can now receive
messages.
--Repair problem that prevented Set message from setting
'Show Graphic' in Champion Portrait Actuators.
--Repair problem that made messages to Champion Portrait
Actuator position-insensitive.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

PtiD: Also, you should let me know if the context-
sensitive help on the Portrait dialog did not help
you understand the Obituary message.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

A shooter is activated by a close effect! Is it normal?
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Zyx: I think that it is normal. A Shooter is activated
by any type 6 message directed at its location/position.
It does not look at the function (Set, Clear, or Toggle).

A Type 6 message is sent to solid walls.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

P.S. I have added this information as a note on the
Edit Missile Launcher dialog.
User avatar
PicturesInTheDark
Arch Master
Posts: 1154
Joined: Mon Aug 26, 2002 4:47 pm
Location: Vienna, Austria

Post by PicturesInTheDark »

Paul: Yes, I've read it. Since I stil had questions basically answered in it you can probably guess I did not fully understand it. This probably has nothing to do with your explanations but with my very limited imagination for interpreting computer programming. I can hardly follow the text abstractly let alone picture the results. It is a painful process of doing it step by step and looking at the results trying to comprehend it. But I'm willing to try it out - it just takes a lot of time.

Regards, PitD
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

I really have to look into these special messages. For now I don't understand why they even exist!
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Zyx:
If you mean the message types and why they exist....
I have no idea. I am pretty sure they exist because
the original implementation of the message structure was
different than what was finally released. It appears that
initially tthe action to be taken at the
target of the message was determined by the message type.
Open door. Close false wall. etc. Then they rewrote it
so that the action was determined by the object being
acted upon. And the messages were more generic. Set,
Clear, Toggle. But they never did away with the message type
because it worked OK as it was. If it ain't broke, don't
fix it.

Here are the rules (from MY comments in the code...)
Note that the comments are just a bit incomplete. And I
don't know how to format columns in this forum.

// Que timer as shown in table below
// If target room is not stone position = 0
// If target room is stone position = targetPos;
// ---------------------------------------------------
// target room timerFunction
// roomSTONE 6 set/clear bits in DB2 and DB3
// If actuator type 14 is in the
// room then an object is ejected
// from the room as a missile.
// roomOPEN 5 ????????
// roomPIT 9 ????????
// roomSTAIRS 0 ????????
// 4 10 ????????
// roomTELEPORTER 8 set/clear room-active (0x08)
// roomFALSEWALL 7 set/clear wall invisible (0x04)
// 7 0 ????????
//********************************************************* :
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Wow, thank you for the information. I understand much better.
I assume target room 4 is "doorway", 7 being the "illegal cell".
About "set/clear bits in DB2 and DB3", I assume you're talking about Database 2 and 3 which are "texts" and "actuators", right?

So a text or an actuator won't be affected by any message on a falsewall, for example, because the "timer function 7" only affects the visibility of the wall. Is it correct?
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Zyx: You are correct on all counts.

I posted a diagram for the Timer Type 7 in my documentaion
folder. You will see that it does not even look to see if
it is a Trick Wall.....it simply assumes that it is a trick wall.
User avatar
ChristopheF
Encyclopedist
Posts: 1603
Joined: Sun Oct 24, 1999 2:36 pm
Location: France
Contact:

Post by ChristopheF »

Paul, to format columns in your posts, you can type your text in an editor (not in the post form) and format it as required using spaces.
Copy/paste the text in the form. Select the text and click on the "code" button. This will tell the forum to use a fixed width font to display the text.
Example:

Code: Select all

A    B    C
10   12   15
13   17   23
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Paul, could you put a warning when playing a log is done and control is back to the player?
Is there a way to pause while playing back?
Will or could a playback done with an encrypted dungeon work with the same, non encrypted dungeon?


About text in the message area, DM can show some special characters like "!" for example. Could you make them all accessible via design? Also, when I put a dot it becomes a "N".
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Warnin when playback complete....Carded
Pause during playback.....Carded

An encrypte dungeon should be identical to the non-
encrypted version. Should be OK. Let me know
if problems.

'!' in message-area text.....Carded

I posted CSBwin version 9.6m.

============================================
Version 9.6m
--Provide wall-tapping.
User avatar
PicturesInTheDark
Arch Master
Posts: 1154
Joined: Mon Aug 26, 2002 4:47 pm
Location: Vienna, Austria

Post by PicturesInTheDark »

Yesssssss! Know it's a small thing but when playtesting and clicking on a wall I was jumping out of my chair when I heard then sound - thanks a lot.

Regards, PitD
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Hi Paul thank you for the release.


Sending a clear message on a floor text in a stairwell causes a crash with en illegal timer entry 0. Sorry but I don't have time to isolate the bugging fact right now so you'll have to see it by yourself.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

Paul, here's a exploited bug:
if I generate two monsters of size 4, they're invisible.
1) This bug is used in Conflux and in several other dungeons (mildew, teamdungeon for example)
2) If you decide anyway to fix it, then will you add the feature for invisible monsters?)
User avatar
beowuuf
Archmastiff
Posts: 20686
Joined: Sat Sep 16, 2000 2:00 pm
Location: Basingstoke, UK

Post by beowuuf »

I think option b) would be preferable anyway, as there is the danger of the reduced party of large monsters stepping out of into the normal orientation and so becoming visable (plus it isn't as messy : ) )
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

I found why such monsters are invisible. The code
sees that they have positions within the cell and then
checks for size 1 or size 2. Size 4 gets missed in the
drawing because it was supposed to be impossible.

Now I put a couple lines (and a lot of comments) in the
code to make it obvious that that is what is ***SUPPOSED***
to happen. So the drawing of invisible monsters is
now a feature rather than a bug.

Beowuuf says that the monsters can 'slip out' of this
configuration. Now that I have made invisibility of size 4
monsters a feature, such 'slipping' becomes a bug. If anyone
can provide a savegame and a recording that demonstrates
this 'slipping' then perhaps I can fix it.

Moreover........If it is valuable to have invisible monsters in
a more general way......I will look into providing some
method of making them invisible. Perhaps even the Monster
Generators can create invisible monsters. Here is one plan:
The position byte can have 24 possible legal values. That
is four factorial. But there are 256 total values. So 242
values go to waste!!! We can use 24 of those unused
values to indicate invisibility. (Another problem solved
with an additional layer of indirection!)

Another plan. Expand the database entry. Add a byte. This
is more pleasing but not nearly as clever or opaque to the
poor fellow trying to understand the encoding.

We can also add a DSA function to change a monster
to/from the invisible state. (Get him to walk on a particular
cell, push a button, and he becomes visible.....for example.)

Let me know what you think. Everything like this comes with
a price. Other features get delayed. There is less version
compatibility. More bugs are introduced. The editor gets more
complicated. Etc. etc.
Post Reply

Return to “Chaos Strikes Back for Windows & Linux (CSBWin) / CSBuild”