CSBwin Version 9.51l
Moderator: Zyx
Forum rules
Please read the Forum rules and policies before posting.
Please read the Forum rules and policies before posting.
- Paul Stevens
- CSBwin Guru
- Posts: 4322
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
CSBwin Version 9.51l
So what makes you think you should lose weight
when you eat? My wife claims the exact opposite.
But...if that is what you want....Version 9.51l is at
http://dianneandpaul.net
The original code released memory then used what
was in the memory. This seems to have been a
habit with the original programmers. That should
be a 'No-no'. We will probably see more problems.
Because I had to revise my way of releasing
objects to accomodate clones properly.
when you eat? My wife claims the exact opposite.
But...if that is what you want....Version 9.51l is at
http://dianneandpaul.net
The original code released memory then used what
was in the memory. This seems to have been a
habit with the original programmers. That should
be a 'No-no'. We will probably see more problems.
Because I had to revise my way of releasing
objects to accomodate clones properly.
- PicturesInTheDark
- Arch Master
- Posts: 1154
- Joined: Mon Aug 26, 2002 4:47 pm
- Location: Vienna, Austria
Re: CSBwin Version 9.51l
Interesting point - stature of the heroes does not come into DM, only weight of objects/food and strength of heroes determining how much they can carry... so who came up with the "loosing weight when eating" or do you mean just the removal of the weight of the (food) objects eaten?
Regards, PitD
Regards, PitD
- Paul Stevens
- CSBwin Guru
- Posts: 4322
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Re: CSBwin Version 9.51l
Yes. That is what I mean. The hero is overloaded so
he eats some food and becomes lighter. That seems
unnatural.
he eats some food and becomes lighter. That seems
unnatural.
- Paul Stevens
- CSBwin Guru
- Posts: 4322
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Re: CSBwin Version 9.51l
I am becoming convinced that 'War Cry' does not work.
Firstly, it gains me fighter levels rather than priest levels.
And the mummies do not back off. The Horn of Fear still
works. It seems like War Cry gained fighter levels in the
original DM.
At any rate, I am going to investigate and if anyone has
any information or test results or clues, please let me know.
Firstly, it gains me fighter levels rather than priest levels.
And the mummies do not back off. The Horn of Fear still
works. It seems like War Cry gained fighter levels in the
original DM.
At any rate, I am going to investigate and if anyone has
any information or test results or clues, please let me know.
Re: CSBwin Version 9.51l
1) On amiga emulator, "War cry" gives fighter levels, as it should if I thrust the graphics.dat informations.
2) With high level priest, warcry makes mummies turn back (CSBwin).
3) Horn of fear should be more efficient than warcry.
According to CSBwin code :
if Rand(0-(Mastery(skill 14)+ForceAttaque) <= Monster.Bravery
monster flees during (4 * (16-Bravery) / pi26A2->uByte6)
XP (skill 14) += ValXP (only half if it failed)
From graphics.dat :
WarCry : Force = 3 ValXP = 12
Calm : Force = 7 ValXP = 35
Brandish : Force = 6 ValXP = 30
Blowhorn : Force = 6 ValXP = 20
Confuse : Force =12 ValXP = 45 (with charges)
(4 * (16-Bravery) / pi26A2->uByte6)
Scorpion 3
Slime_Devil 1
Giggler 21
Flying_Eye 2
Ruster 2
Rock_Pile 0
Rive 3
Mummy 1
Black_Flame 0
Skeleton 4
Couatl 10
Vexirk 4
Worm 1
Ant_Man 3
Zytaz 7
Water_Elemental 1
Oitu 5
Lord_Chaos 4
Dragon 2
2) With high level priest, warcry makes mummies turn back (CSBwin).
3) Horn of fear should be more efficient than warcry.
According to CSBwin code :
if Rand(0-(Mastery(skill 14)+ForceAttaque) <= Monster.Bravery
monster flees during (4 * (16-Bravery) / pi26A2->uByte6)
XP (skill 14) += ValXP (only half if it failed)
From graphics.dat :
WarCry : Force = 3 ValXP = 12
Calm : Force = 7 ValXP = 35
Brandish : Force = 6 ValXP = 30
Blowhorn : Force = 6 ValXP = 20
Confuse : Force =12 ValXP = 45 (with charges)
(4 * (16-Bravery) / pi26A2->uByte6)
Scorpion 3
Slime_Devil 1
Giggler 21
Flying_Eye 2
Ruster 2
Rock_Pile 0
Rive 3
Mummy 1
Black_Flame 0
Skeleton 4
Couatl 10
Vexirk 4
Worm 1
Ant_Man 3
Zytaz 7
Water_Elemental 1
Oitu 5
Lord_Chaos 4
Dragon 2
- Paul Stevens
- CSBwin Guru
- Posts: 4322
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Re: CSBwin Version 9.51l
Thanks very much. Is all of this organized (or going to
be) in a way that can be released to the world? This
stuff is difficult to figure out. This last number you give
that is in inverse proportion to the Bravery might be
called what??? It is the time needed to regain composure
after having been frightened? 'Recomposure Time'? What???
It would be nice to document these computed values and
give them names. Saying"
monster flees during (4 * (16-Bravery) / pi26A2->uByte6)
is accurate but not immediately informative. What are the
units of time in this equation? It is certainly not ticks of the
master clock (1/6 second). Perhaps it is the number of
timer events that occur for this monster, in which case we
need to know how often that happens. What might that
uByte6 be called?
What should I call that structure that I named ITEM26?
MONSTER_TYPE_DESCRIPTION would work, I suppose
although it is a bit long.
MONSTERTYPEDESC monTypeDesc[];
As you may have guessed......when first translating the
machine language, nothing had a name. This structure
was named ITEM26 because it was 26 bytes long. It has
never been changed. It begs for a decent name.
PAul
be) in a way that can be released to the world? This
stuff is difficult to figure out. This last number you give
that is in inverse proportion to the Bravery might be
called what??? It is the time needed to regain composure
after having been frightened? 'Recomposure Time'? What???
It would be nice to document these computed values and
give them names. Saying"
monster flees during (4 * (16-Bravery) / pi26A2->uByte6)
is accurate but not immediately informative. What are the
units of time in this equation? It is certainly not ticks of the
master clock (1/6 second). Perhaps it is the number of
timer events that occur for this monster, in which case we
need to know how often that happens. What might that
uByte6 be called?
What should I call that structure that I named ITEM26?
MONSTER_TYPE_DESCRIPTION would work, I suppose
although it is a bit long.
MONSTERTYPEDESC monTypeDesc[];
As you may have guessed......when first translating the
machine language, nothing had a name. This structure
was named ITEM26 because it was 26 bytes long. It has
never been changed. It begs for a decent name.
PAul
Re: CSBwin Version 9.51l
> Is all of this organized (or going to be) in a way
> that can be released to the world?
I'm working on it, but it is much more difficult than just understanding it. But I promise that my "real job" will not have the last word.
I noticed your questions on the monsters' behaviour, but I'm not still able to reply. In fact, I'm not really sure I will can, as some functions (I think of "ProcessTimers29to41()") really look awful. By now, I think that if you're close enough of monster, and if they can see you (being in front of them is really important!!), they come to you. If they do not see you, they wander randomly. That way, I fought a dragon following his back, he never seems to find me...
Now for the fear effect, I suspect that monsters are just turned and do not see you any more, and I do not think that they really run away (except gigglers). By now, these are just my opinions...
> What are the units of time in this equation?
Until now, I would say that your suggestion seems right, and that pi26A2->uByte6 looks like precisely the number of ticks per movement, and so monsters flee during 4*(16-Bravery) clock units.
I have difficulties to see what uByte6 is used for because there are ITEM16->uByte6 and ITEM26->uByte6, and the two structures are related to monsters. But reading your comments, I can say that the uByte6 used here is the ticks/movement.
I'm afraid my english lacks wont enable me to propose good names. In fact, I don't relly think that names like "Item16" should be replaced, if it can save you from a hard (and potentially bug generating) work. Commenting them should be enough, apart the fact that there shouldn't be different "things" with the same name (Ubyte6 e.g. !).
> that can be released to the world?
I'm working on it, but it is much more difficult than just understanding it. But I promise that my "real job" will not have the last word.
I noticed your questions on the monsters' behaviour, but I'm not still able to reply. In fact, I'm not really sure I will can, as some functions (I think of "ProcessTimers29to41()") really look awful. By now, I think that if you're close enough of monster, and if they can see you (being in front of them is really important!!), they come to you. If they do not see you, they wander randomly. That way, I fought a dragon following his back, he never seems to find me...
Now for the fear effect, I suspect that monsters are just turned and do not see you any more, and I do not think that they really run away (except gigglers). By now, these are just my opinions...
> What are the units of time in this equation?
Until now, I would say that your suggestion seems right, and that pi26A2->uByte6 looks like precisely the number of ticks per movement, and so monsters flee during 4*(16-Bravery) clock units.
I have difficulties to see what uByte6 is used for because there are ITEM16->uByte6 and ITEM26->uByte6, and the two structures are related to monsters. But reading your comments, I can say that the uByte6 used here is the ticks/movement.
I'm afraid my english lacks wont enable me to propose good names. In fact, I don't relly think that names like "Item16" should be replaced, if it can save you from a hard (and potentially bug generating) work. Commenting them should be enough, apart the fact that there shouldn't be different "things" with the same name (Ubyte6 e.g. !).
- Paul Stevens
- CSBwin Guru
- Posts: 4322
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Re: CSBwin Version 9.51l
Very interesting. Thanks for the reply.
===================
ProcessTimers29To41 is awful. This is spaghetti
code. I tried hard to rearrange as much as I could
in some structured way. I made no progress with
this code at all. For those who have not seen
any of this, the timers with types 29 to 41 are the
timers that initiate monster actions. And the code
that proceeses these timers is the arificial intelligence
of the monsters. It is ***AWFUL***. Making
sense of this code would be a project of magnitude
nearly like that of translating the entire program.
It undoubedly grew a few lines at a time over a long
period of development. Special cases abound.
========================
ITEM26->uByte6 and ITEM16->uByte6
I will change the ITEM26 byte to:
ITEM26->ubTicksPerStep.
If it turns out wrong I can rename it again. I have
lots of practice renaming things. :-[
For everyone else:
ITEM26 is the structure that defines the TYPE of monster;
Giggler, or Worm, or Dragon. Size, Bravery, etc.
ITEM16 is the structure that defines a particular instance
of a group of monsters. Which way they are facing,
for example. To save memory, this only exists when the
monsters are on the same level as the party. When they
are on another level, this structure is discarded and the
monsters are a simpler group.....for example, they all
face the same direction.
==============================
I'm afraid my english lacks wont enable me to propose
good names
Your english is wonderful. Keep talking; I'm listening.
============================
don't relly think that names like "Item16" should be replaced,
Wrong. They have to be replaced. If I had not renamed
things as best as I could as I went along then, believe me,
you would never have been aable to understand as much
as you do. It is a slow, painful process of successive
approximation. Renaming one thing makes it clear that
something was improperly named yesterday and then
getting THAT right makes another variable's meaning more
understandable, and so on and so on. Otherwise everything
would still be named D5, and A0, and
*(word *)((unsigned char *)d + 1852).
That is how it started!!!!
===================
ProcessTimers29To41 is awful. This is spaghetti
code. I tried hard to rearrange as much as I could
in some structured way. I made no progress with
this code at all. For those who have not seen
any of this, the timers with types 29 to 41 are the
timers that initiate monster actions. And the code
that proceeses these timers is the arificial intelligence
of the monsters. It is ***AWFUL***. Making
sense of this code would be a project of magnitude
nearly like that of translating the entire program.
It undoubedly grew a few lines at a time over a long
period of development. Special cases abound.
========================
ITEM26->uByte6 and ITEM16->uByte6
I will change the ITEM26 byte to:
ITEM26->ubTicksPerStep.
If it turns out wrong I can rename it again. I have
lots of practice renaming things. :-[
For everyone else:
ITEM26 is the structure that defines the TYPE of monster;
Giggler, or Worm, or Dragon. Size, Bravery, etc.
ITEM16 is the structure that defines a particular instance
of a group of monsters. Which way they are facing,
for example. To save memory, this only exists when the
monsters are on the same level as the party. When they
are on another level, this structure is discarded and the
monsters are a simpler group.....for example, they all
face the same direction.
==============================
I'm afraid my english lacks wont enable me to propose
good names
Your english is wonderful. Keep talking; I'm listening.
============================
don't relly think that names like "Item16" should be replaced,
Wrong. They have to be replaced. If I had not renamed
things as best as I could as I went along then, believe me,
you would never have been aable to understand as much
as you do. It is a slow, painful process of successive
approximation. Renaming one thing makes it clear that
something was improperly named yesterday and then
getting THAT right makes another variable's meaning more
understandable, and so on and so on. Otherwise everything
would still be named D5, and A0, and
*(word *)((unsigned char *)d + 1852).
That is how it started!!!!
Re: CSBwin Version 9.51l
Hi, I´m back with some questions for you, Paul.
I just can´t make the leader drink from fountains by mouse clicking on them (without a flask)
When I die, I sometimes experience a shift in the colors, before the blue screen with the reload option. For example, brown rats become pink.
The PC version of DM has a feature about checking wall: by clicking on a wall, a solid wall would produce a thump sound, an illusionnary wall would produce no sound and the hand would disappear for a second.
I´d like to know if you would implement this feature.
For the size=FULL option, only the dungeon windows is displayed. Character zones, spell zone, weapons zone and text zone are not displayed.
I just can´t make the leader drink from fountains by mouse clicking on them (without a flask)
When I die, I sometimes experience a shift in the colors, before the blue screen with the reload option. For example, brown rats become pink.
The PC version of DM has a feature about checking wall: by clicking on a wall, a solid wall would produce a thump sound, an illusionnary wall would produce no sound and the hand would disappear for a second.
I´d like to know if you would implement this feature.
For the size=FULL option, only the dungeon windows is displayed. Character zones, spell zone, weapons zone and text zone are not displayed.
- Paul Stevens
- CSBwin Guru
- Posts: 4322
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Re: CSBwin Version 9.51l
You cannot drink without a Waterskin or Flask. That is the
way it is.
The shift in color.....This is due to the use of different palettes
for the viewport and for the inventory screen. Getting the
right palette loaded caused me lots of problems. I'll see what
I can do.
Tapping on a wall would be nice. It is not in the Atari version.
Perhaps I can implement it; perhaps not. I will look into it.
Size==FULL.......The window sizes and locations are specified
in the config.txt file. If you don't specify a window then it is
not shown.
[first try....very good]
way it is.
The shift in color.....This is due to the use of different palettes
for the viewport and for the inventory screen. Getting the
right palette loaded caused me lots of problems. I'll see what
I can do.
Tapping on a wall would be nice. It is not in the Atari version.
Perhaps I can implement it; perhaps not. I will look into it.
Size==FULL.......The window sizes and locations are specified
in the config.txt file. If you don't specify a window then it is
not shown.
[first try....very good]