Difference between revisions of "CSBwin/Bugs and Requests"

From DmWiki
Jump to navigationJump to search
m
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Item Pick area too low - Priority = 1 ==
+
== Floor decoration glitch - High Priority (maybe already fixed, to be checked) ==
2) for certain items, in CSBwin, when you click on them on the floor to pick them up, the responsive area the the click is like 2 pixels too low.
+
just to test the extreme case, I made a 244 x 136 floor (see attachment)
ie, if you click under the item, you pick it up, and if you click on its upper border, nothing happens.
+
views 0 and 2 are glitched because they should be cut off.
try the magic box (blue) named MAGIC PURSE in this graphics.dat.
+
views 6,7 and 8  are glitched due to the width of 224.
 +
 
 +
 
 +
== Floor decoration in stairwell - Medium Priority ==
 +
could the floor decorations be visible on staircases?
 +
 
 +
This should probably be implemented in your extended graphics code.  You can draw whatever you please whereever you please.  I am willing to help after some discussion of what exactly you need.
 +
 
 +
== DSA start state limitation - Medium Priority ==
 +
the starting state of a DSA can only be between 0 and 15. is it on purpose?
 +
 
 +
 
 +
== 3D floor decorations - High Priority ==
 +
I'd like to make floor decorations with height, which means that items on the far side of the tile should be drawn before drawing the tile decoration, as for doors. Could you have a try about this bit in the floor descriptors to behave like doors?
 +
 
 +
 
 +
22Oct08 - PRS - Don't you have your own code in CSBGraphics.dat which is responsible for drawing the viewport?  You can draw the floor decorations and objects in any order you please. If you want me to try and help with this, send a sample dungeon and your source code for the graphics.  Perhaps these decorations could be recognized by being in a certain number range (like 400-499).
 +
 
 +
 
 +
 
  
 
== DSA function to slow party - Already coded, should be tested ==
 
== DSA function to slow party - Already coded, should be tested ==
Line 9: Line 28:
 
- Turning would be slowed too but it wouldn't decrease the counter.
 
- Turning would be slowed too but it wouldn't decrease the counter.
  
== Adding/Referencing flag in Missile - Priority = 6 ==
+
== Adding/Referencing flag in Missile - Low Priority ==
 
3) about missiles, I saw the thread on the forum... great ideas!
 
3) about missiles, I saw the thread on the forum... great ideas!
 
out of joke, I'd like to be able use one of the unsed byte as a flag.  
 
out of joke, I'd like to be able use one of the unsed byte as a flag.  
Line 16: Line 35:
 
If you allow me to change the direction besides cancelling the impact, I would have a lot of fun.
 
If you allow me to change the direction besides cancelling the impact, I would have a lot of fun.
  
== Slow Missile - Priority = 6 ==
+
== Slow Missile - Low Priority ==
 
4) Another interesting idea: the slow missile. is it possible to use a byte as a flag telling if it is a normal or slow missile?
 
4) Another interesting idea: the slow missile. is it possible to use a byte as a flag telling if it is a normal or slow missile?
  
Line 23: Line 42:
 
could the flags be used as delay before hearing the sound?
 
could the flags be used as delay before hearing the sound?
  
== Using DSA as data - Priority = 4 ==
 
4) I have a great idea about a flood, but I'd need the following commands:
 
&DSATYPE (ObjectID  . . .  DSAType) yields -1 when it's not a DSA, 0 to 255 when a DSA
 
&DSASTATE (ObjectID  . . .  DSAType) yields -1 when it's not a DSA, 0 to err, 200000? when a DSA
 
&DSA_A (ObjectID  . . .  DSA_A) yields -1 when it's not a DSA, parameter A when a DSA
 
&DSA_B (ObjectID  . . .  DSA_B) yields -1 when it's not a DSA, parameter B when a DSA
 
  
== Mirroring decorations - Priority = 2 ==
 
1) I wanted to set a mirroring effect for north and east, which should give the flags: 00 06
 
but nothing happens. It only works if I also set mirroring for the 9 views: FF 07.
 
Yes, this is as you said, but then how could I set a north and west mirrorring AND a mirroring for views 0,4,7 for example?
 
I think that it should be a XOR operation, not an AND: mirror if facing bit XOR tile bit is set, otherwise don't.
 
  
 
+
== Monster Poison/Magic resistance - Medium Priority ==
I think you want to mirror a cell if (Cell bitset) XOR (facing bit set).
 
 
 
That makes some sense.  I will do it.
 
 
 
PRS 20Oct2008
 
 
 
== Floor decoration in stairwell - Priority = 3 ==
 
could the floor decorations be visible on staircases?
 
 
 
== DSA start state limitation - Priority = 3 ==
 
the starting state of a DSA can only be between 0 and 15. is it on purpose?
 
 
 
== Floor decoration glitch - Priority = 1 (maybe already fixed, to be checked) ==
 
just to test the extreme case, I made a 244 x 136 floor (see attachment)
 
views 0 and 2 are glitched because they should be cut off.
 
views 6,7 and 8  are glitched due to the width of 224.
 
 
 
== Graphic of dropped items missing - Priority = 2 ==
 
if at runtime I drop (through a &ADD or a monster dying) an actuator or a decoration DSA on the floor, the graphic won't appear if there are items on the floor. I have to remove the items to make the graphic appear.
 
 
 
== 3D floor decorations - Priority = 2 ==
 
I'd like to make floor decorations with height, which means that items on the far side of the tile should be drawn before drawing the tile decoration, as for doors. Could you have a try about this bit in the floor descriptors to behave like doors?
 
 
 
== Monster Poison/Magic resistance - Priority = 5 ==
 
 
from the documentation published by Christophe, for monsters descriptors:
 
from the documentation published by Christophe, for monsters descriptors:
 
12h (18) 1 word (big endian):
 
12h (18) 1 word (big endian):
Line 73: Line 57:
 
For backward compatibility, put a general check in CSBuild for the dungeon: "allow partial resistances for monsters".
 
For backward compatibility, put a general check in CSBuild for the dungeon: "allow partial resistances for monsters".
  
== Playback bug when clicking on Prison Door - Priority = ? ==
+
== Playback bug when clicking on Prison Door - ??? Priority ==
 
I think the bug that was fixed involved left clicking in the game
 
I think the bug that was fixed involved left clicking in the game
 
loaded screen, this one involves right clicking. Anyway, I was able to
 
loaded screen, this one involves right clicking. Anyway, I was able to
Line 84: Line 68:
  
  
== DSA function to get Skin Number - Priority = 4 - FIXED ==
+
== DSA function to get Skin Number - Medium Priority - FIXED ==
 
2) it would be interesting to be able, through a DSA, to know the skin number associated to a location.
 
2) it would be interesting to be able, through a DSA, to know the skin number associated to a location.
 
this would allow me to link rules directly to skins (no fireball when on a tile with an aquatic skin, for example)
 
this would allow me to link rules directly to skins (no fireball when on a tile with an aquatic skin, for example)
Line 117: Line 101:
 
Paul 15 October 2008
 
Paul 15 October 2008
  
 +
== Item Pick area too low - RESOLVED ==
 +
2) for certain items, in CSBwin, when you click on them on the floor to pick them up, the responsive area the the click is like 2 pixels too low.
 +
ie, if you click under the item, you pick it up, and if you click on its upper border, nothing happens.
 +
try the magic box (blue) named MAGIC PURSE in this graphics.dat.
 +
 +
 +
== Mirroring decorations - COMPLETED ==
 +
1) I wanted to set a mirroring effect for north and east, which should give the flags: 00 06
 +
but nothing happens. It only works if I also set mirroring for the 9 views: FF 07.
 +
Yes, this is as you said, but then how could I set a north and west mirrorring AND a mirroring for views 0,4,7 for example?
 +
I think that it should be a XOR operation, not an AND: mirror if facing bit XOR tile bit is set, otherwise don't.
 +
 +
 +
I think you want to mirror a cell if (Cell bitset) XOR (facing bit set).
 +
 +
That makes some sense.  I will do it.
 +
 +
PRS 20Oct2008
 +
 +
Implemented in CSBwin 10.096 22Oct08 PRS
 +
 +
== Graphic of dropped items missing - FIXED ==
 +
if at runtime I drop (through a &ADD or a monster dying) an actuator or a decoration DSA on the floor, the graphic won't appear if there are items on the floor. I have to remove the items to make the graphic appear.
 +
Fixed in CSBwin version 10.097 PRS 24Oct2008
 +
 +
== Using DSA as data - COMPLETED ==
 +
4) I have a great idea about a flood, but I'd need the following commands:
 +
&DSATYPE (ObjectID  . . .  DSAType) yields -1 when it's not a DSA, 0 to 255 when a DSA
 +
&DSASTATE (ObjectID  . . .  DSAType) yields -1 when it's not a DSA, 0 to err, 200000? when a DSA
 +
&DSA_A (ObjectID  . . .  DSA_A) yields -1 when it's not a DSA, parameter A when a DSA
 +
&DSA_B (ObjectID  . . .  DSA_B) yields -1 when it's not a DSA, parameter B when a DSA
 +
 +
It appears that you want to solve partial differential equations using difference methods.
 +
CSBwin was not really designed with this in mind!
 +
This has been implemented as &DSAINFO@.  PRS 25Oct2008
 +
 +
== Mechanism to sleep/awaken monster AIs - Very Low Priority ==
 +
This is ''what-if'' thinking (therefore the priority): A dungeon with a ton a monsters will burn CPU time updating monsters that (frequently) will have no effect on the player's experience. In these instances it could be useful to allow the designer to activate/deactivate those monster's processing. I'm mainly thinking in conjunction with the ''Party Move Filter''
 +
 +
COMMENT by PRS:  Except on very slow machines I have never seen CPU time be any problem in CSBwin.  If you have a counter-example, perhaps I should look at it to see what is going on.  We could certainly consider some mechanism to use less time processing non-essential monster AI.  I think the code already causes monsters on distant from the party to move less often.  It might be easy to extend that capability.  I think it would be best to slow them down rather than to deactivate or stop them completely.  What mechanism(s) did you have in mind?
 +
 +
By the way - Did you mean Priority 1 = Top priority?  Zyx was the first to assign priorities here and he used number one to mean the most important.
  
 +
'''Follow-up''': For the priority I meant the lowest-possible. My intention was to throw this out as food-for-thought (if a designer ever starts to see slow-down).  The potential situation I was considering was a dungeon with a heavy-weight ''Monster Moving'' filter or filters (and lots of monsters).  I should have been more explict, as I wasn't thinking about any fine-grain control (say group-by-group) but more at the on-this-level type granularity. For instance, when a party is on level ''n'', monster moving around on levels above ''(n-1)'' and below ''(n+1)'' in most cases won't have any gameplay effect, so it could (in this hypothetical case) be desirable to sleep and awaken monsters on a given level when the party moves between levels.  Removing the cost of the ''Monster Moving'' filter (as I understand it) seems to be currently possible by using the level-specific variant and moving the instances around on party level change to effectively enable/disable the filter for the given level, I was simply tossing out the idea of going one step beyond this.
  
[[Category:CSBwin| ]]
+
[[Category:CSBwin|Bugs and Requests]]

Latest revision as of 16:32, 6 January 2009

Floor decoration glitch - High Priority (maybe already fixed, to be checked)

just to test the extreme case, I made a 244 x 136 floor (see attachment) views 0 and 2 are glitched because they should be cut off. views 6,7 and 8 are glitched due to the width of 224.


Floor decoration in stairwell - Medium Priority

could the floor decorations be visible on staircases?

This should probably be implemented in your extended graphics code. You can draw whatever you please whereever you please. I am willing to help after some discussion of what exactly you need.

DSA start state limitation - Medium Priority

the starting state of a DSA can only be between 0 and 15. is it on purpose?


3D floor decorations - High Priority

I'd like to make floor decorations with height, which means that items on the far side of the tile should be drawn before drawing the tile decoration, as for doors. Could you have a try about this bit in the floor descriptors to behave like doors?


22Oct08 - PRS - Don't you have your own code in CSBGraphics.dat which is responsible for drawing the viewport? You can draw the floor decorations and objects in any order you please. If you want me to try and help with this, send a sample dungeon and your source code for the graphics. Perhaps these decorations could be recognized by being in a certain number range (like 400-499).



DSA function to slow party - Already coded, should be tested

2) would it be possible, through a DSA instruction, to slow down the party for their next step, as when heavily loaded? - The slow down counter would decrease for each step taken. (if a counter is not technically possible, the effect would simply be gone as soon as the party makes a step.) - Turning would be slowed too but it wouldn't decrease the counter.

Adding/Referencing flag in Missile - Low Priority

3) about missiles, I saw the thread on the forum... great ideas! out of joke, I'd like to be able use one of the unsed byte as a flag. I would set it during the &CAST, &FILTEREDCAST, &THROW, so I cand find it later in the MissileEncounterFilter. (maybe with a &FLAG operator, so you don't have to change the current syntax of the current commands?) If you allow me to change the direction besides cancelling the impact, I would have a lot of fun.

Slow Missile - Low Priority

4) Another interesting idea: the slow missile. is it possible to use a byte as a flag telling if it is a normal or slow missile?

Delayed Sound - (Refused - Paul recommends sending a &MESSAGE to a sound DSA)

6) &SOUND ( SoundNumber attenuation(divisor) flags ... ) could the flags be used as delay before hearing the sound?


Monster Poison/Magic resistance - Medium Priority

from the documentation published by Christophe, for monsters descriptors: 12h (18) 1 word (big endian):

   * Bits 15-12: Unused, always 0.
   * Bits 11-8: Poison resistance (Clouds and Bolts). Value 15 means the creature is immune.
   * Bits 7-4: Fire resistance (Magic resistance). Value 15 means the creature is immune. Does it apply only to fire or all magic?

The resistances, thus, are wether a complete vulnerability or a complete immunity.

Would it be possible, to compute partial resistances when the value is between 1 and 14 (included)? For backward compatibility, put a general check in CSBuild for the dungeon: "allow partial resistances for monsters".

Playback bug when clicking on Prison Door - ??? Priority

I think the bug that was fixed involved left clicking in the game loaded screen, this one involves right clicking. Anyway, I was able to recreate the bug with the latest version, 10.089, from constructtorch. How about the game I tried to splice the logs of? I don't won't to keep playing until I can make it work. Something weird happens when I try to cast a YA spell. For some reason in the playback I have less mana at the point I try to cast it than I did in the actual game.


DSA function to get Skin Number - Medium Priority - FIXED

2) it would be interesting to be able, through a DSA, to know the skin number associated to a location. this would allow me to link rules directly to skins (no fireball when on a tile with an aquatic skin, for example)

OK. I will provide a &SKIN ( location . . . skinNumber ) PRS 19Oct08

DONE 20Oct2008 PRS


Alternate Froor Decoration Glitched - FIXED

this alternate floor decoration is glitched, I don't know why. It's the concatenation of group0.txt (54bytes+2) and F.bin (800bytes) I checked the floordec000.bin that came in the construct torch, and it doesn't have the two bytes of zero after the 54bytes of the descryptor, yet the documentation states that they should be there since 54 is not a multiple of 4. Just for the sake of it, I tried using only 54 bytes instead of 56 with my alternate decoration, and the view 8 is correct, the other glitched. With 56 bytes everything is glitched.

DSA function &DISTACEFROMPARTY - DONE and FIXED

3) I'm thinking about making a few selected animated floor and wall decorations. this time I'm not forgetting about the possible choking of the CPU. The most frequent operation that will occur will be to check if the party is on the level and near the DSA. would it be possible to create a command like this: &DISTANCEFROMPARTY (location . . . Distance) Distance would be -1 if the party is not on the same level than location otherwise, distance is the number of tiles between location and the party (x + y), 0 meaning the party is on the location.

&PARTYDISTANCE with CSBuild 3.01 gives an error of DSA code when I close/open the DSA containing this instruction.

Request Overlay transparent color - Completed and FIXED

About &overlay: I was wondering if it would be possible to define a transparent color for the viewport overlays since p1,p3 and p4 are not used.

I have implemented this in CSBwin10.093. See documentation at:http://www.dianneandpaul.net/CSBwin/documentation/ViewportOverlay.html

Paul 15 October 2008

Item Pick area too low - RESOLVED

2) for certain items, in CSBwin, when you click on them on the floor to pick them up, the responsive area the the click is like 2 pixels too low. ie, if you click under the item, you pick it up, and if you click on its upper border, nothing happens. try the magic box (blue) named MAGIC PURSE in this graphics.dat.


Mirroring decorations - COMPLETED

1) I wanted to set a mirroring effect for north and east, which should give the flags: 00 06 but nothing happens. It only works if I also set mirroring for the 9 views: FF 07. Yes, this is as you said, but then how could I set a north and west mirrorring AND a mirroring for views 0,4,7 for example? I think that it should be a XOR operation, not an AND: mirror if facing bit XOR tile bit is set, otherwise don't.


I think you want to mirror a cell if (Cell bitset) XOR (facing bit set).

That makes some sense. I will do it.

PRS 20Oct2008

Implemented in CSBwin 10.096 22Oct08 PRS

Graphic of dropped items missing - FIXED

if at runtime I drop (through a &ADD or a monster dying) an actuator or a decoration DSA on the floor, the graphic won't appear if there are items on the floor. I have to remove the items to make the graphic appear. Fixed in CSBwin version 10.097 PRS 24Oct2008

Using DSA as data - COMPLETED

4) I have a great idea about a flood, but I'd need the following commands: &DSATYPE (ObjectID . . . DSAType) yields -1 when it's not a DSA, 0 to 255 when a DSA &DSASTATE (ObjectID . . . DSAType) yields -1 when it's not a DSA, 0 to err, 200000? when a DSA &DSA_A (ObjectID . . . DSA_A) yields -1 when it's not a DSA, parameter A when a DSA &DSA_B (ObjectID . . . DSA_B) yields -1 when it's not a DSA, parameter B when a DSA

It appears that you want to solve partial differential equations using difference methods. CSBwin was not really designed with this in mind! This has been implemented as &DSAINFO@. PRS 25Oct2008

Mechanism to sleep/awaken monster AIs - Very Low Priority

This is what-if thinking (therefore the priority): A dungeon with a ton a monsters will burn CPU time updating monsters that (frequently) will have no effect on the player's experience. In these instances it could be useful to allow the designer to activate/deactivate those monster's processing. I'm mainly thinking in conjunction with the Party Move Filter

COMMENT by PRS: Except on very slow machines I have never seen CPU time be any problem in CSBwin. If you have a counter-example, perhaps I should look at it to see what is going on. We could certainly consider some mechanism to use less time processing non-essential monster AI. I think the code already causes monsters on distant from the party to move less often. It might be easy to extend that capability. I think it would be best to slow them down rather than to deactivate or stop them completely. What mechanism(s) did you have in mind?

By the way - Did you mean Priority 1 = Top priority? Zyx was the first to assign priorities here and he used number one to mean the most important.

Follow-up: For the priority I meant the lowest-possible. My intention was to throw this out as food-for-thought (if a designer ever starts to see slow-down). The potential situation I was considering was a dungeon with a heavy-weight Monster Moving filter or filters (and lots of monsters). I should have been more explict, as I wasn't thinking about any fine-grain control (say group-by-group) but more at the on-this-level type granularity. For instance, when a party is on level n, monster moving around on levels above (n-1) and below (n+1) in most cases won't have any gameplay effect, so it could (in this hypothetical case) be desirable to sleep and awaken monsters on a given level when the party moves between levels. Removing the cost of the Monster Moving filter (as I understand it) seems to be currently possible by using the level-specific variant and moving the instances around on party level change to effectively enable/disable the filter for the given level, I was simply tossing out the idea of going one step beyond this.