Huge wall decorations
Moderator: Zyx
Forum rules
Please read the Forum rules and policies before posting.
Please read the Forum rules and policies before posting.
Huge wall decorations
Does CSBwin handle wall decorations differently than PCDM? Before I went away I was doing some tests to simulate multistory buildings by using wallitems that extended well past the face of the wall it was on and PCDM handled those fine, but when I tried to use the same wallitems in CSBwin it just shows a garbled thing that doesn't extend beyond the confines of the wall square.
Here's what it looked like in PCDM: http://viila.lethalcode.net/~tylisirn/dm/dm_walls2.png
The wall item: http://viila.lethalcode.net/~tylisirn/huge_wall.png
And in CSBwin: http://viila.lethalcode.net/~tylisirn/W ... CSBwin.png
So, what's the limits in CSBwin? I guess using the alternate skins would be better idea for this anyway?
Here's what it looked like in PCDM: http://viila.lethalcode.net/~tylisirn/dm/dm_walls2.png
The wall item: http://viila.lethalcode.net/~tylisirn/huge_wall.png
And in CSBwin: http://viila.lethalcode.net/~tylisirn/W ... CSBwin.png
So, what's the limits in CSBwin? I guess using the alternate skins would be better idea for this anyway?
Toni Ylisirniö
Author of Grave of King Millias, Return of Chaos, and DM2 dungeons.
Author of Grave of King Millias, Return of Chaos, and DM2 dungeons.
- Paul Stevens
- CSBwin Guru
- Posts: 4318
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
No idea what PCDM does.differently than PCDM?
I think if you change the 'graphics.dat'
in all the required places that you can
display pretty much whatever you like.
I don't think very much is wired into
the engine itself. All the graphics sizes
and offsets are in the 'graphics.dat' and
they must agree with the sizes of the
bitmaps themselves or you will get
garbled results.
Using the 'skins' capability and writing
your own code (by modifying the standard
code) would certainly be the surest way
to get it exactly as you want it. Because
there are no restrictions on size, order,
or placement of anything. And you can
make minor or major modifications for
each different skin.
On the other hand, if you want to use the
standard engine and are having troubles then
forward a very simple test case to me and
I will see why it does not do what you think
it should do. And, perhaps, how to change it.
Ah, PCDM doesn't care about the sizes and offsets then I guess. I only compiled the graphics.dat with DMextract, and looking at it in ADGE shows that the coordinates and sizes are not exactly right. I'll see if I can get it fixed by playing with those. I guess that also explains why one of my other wallitems looks garbled in certain views...
Toni Ylisirniö
Author of Grave of King Millias, Return of Chaos, and DM2 dungeons.
Author of Grave of King Millias, Return of Chaos, and DM2 dungeons.
I think that the RTC debate centred around how none of the engines - DM, CSB nor DM2, actualyl shared a perspective! There are subtle differences so that wall sets ofr one will look out for another
Pits were the worst and highlighted the problem first of all when I think gambit was playing around with them a few years ago
Pits were the worst and highlighted the problem first of all when I think gambit was playing around with them a few years ago
-
- Artisan
- Posts: 178
- Joined: Wed Dec 17, 2003 1:39 am
- Location: Osaka, Japan
- Contact:
hi.
hopefully both wallset and decoration customization should walk each other way. current wallset customization is at very excellent stage. but decoration customization may need improve.
and a reckless suggestion: custom wall/floor decoration feature like DMPC style.
i remember that wall/floor decoration feature in CustomGraphicsEngine is undefined yet (but is spec almost decided?). utilize it to define new decoration objects.
how to select them in dungeon: reuse current UI, wall/floor decoration selector in CSBuild. allocate index 0x80 or more to select their objects. they should be unused in CSBwin. e.g. 0x80 is CustomWall#1, 0x81 is CustomWall#2, 0x82 is CustomWall#3 and so on. the custom index can be mapped into the index of array of "floor/wall decoration graphic ID" directly defined in each skin.
picture format: 2 pictures are required for one wall decoration, 6 pictures are for a one floor decoration. it will be convenient if A DECORATION GRAPHIC bin file can contains 2 or 6 pictures in it because it won't break current skin def rule "one id for one decoration".
about DMPC style: it is suggestive that decoration picture is displayed centered in each wall/floor position (also stretched if need). i can fight with DMPC, and suggest a set of center positions and stretching factors if need.
but i'm curious to still challenge with skincode words "HasDecoration", "FloorDecorationGraphicOrdinal<rr>", and so on.
i could find their words in CSBwin documentation site.
but i cannot find just "WallDecorationGraphicOrdinal<rr>" yet.
IMO it is quite true. but it will be applied for only wall set. there can be a lot of tasks if i am willing to inject decorations thing code into exist skinning code.Using the 'skins' capability and writing
your own code (by modifying the standard
code) would certainly be the surest way
to get it exactly as you want it. Because
there are no restrictions on size, order,
or placement of anything. And you can
make minor or major modifications for
each different skin.
hopefully both wallset and decoration customization should walk each other way. current wallset customization is at very excellent stage. but decoration customization may need improve.
and a reckless suggestion: custom wall/floor decoration feature like DMPC style.
i remember that wall/floor decoration feature in CustomGraphicsEngine is undefined yet (but is spec almost decided?). utilize it to define new decoration objects.
how to select them in dungeon: reuse current UI, wall/floor decoration selector in CSBuild. allocate index 0x80 or more to select their objects. they should be unused in CSBwin. e.g. 0x80 is CustomWall#1, 0x81 is CustomWall#2, 0x82 is CustomWall#3 and so on. the custom index can be mapped into the index of array of "floor/wall decoration graphic ID" directly defined in each skin.
picture format: 2 pictures are required for one wall decoration, 6 pictures are for a one floor decoration. it will be convenient if A DECORATION GRAPHIC bin file can contains 2 or 6 pictures in it because it won't break current skin def rule "one id for one decoration".
about DMPC style: it is suggestive that decoration picture is displayed centered in each wall/floor position (also stretched if need). i can fight with DMPC, and suggest a set of center positions and stretching factors if need.
but i'm curious to still challenge with skincode words "HasDecoration", "FloorDecorationGraphicOrdinal<rr>", and so on.
i could find their words in CSBwin documentation site.
but i cannot find just "WallDecorationGraphicOrdinal<rr>" yet.
- Paul Stevens
- CSBwin Guru
- Posts: 4318
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
Good morning.
We have a language barrior.
Development of CSBwin is terminated. I have fixed
some bugs and will continue to do so but I am not
going to add any new features that require more than
a couple lines of code.
Have you tried large Wall Decorations using the
standard engine? I think it might work. I am wlling
to help if you want to try harder.
The Skin code is going to be complex and will require
a lot of work. I have never done it myself except
for 'Proof of Principle'. I have never used the
tools to create the bitmaps or the Graphics.dat
file. If you want to try this, I am willing to help.
=================================
From memory.....I did not look at the code.
I hope I am not misleading you.
"WallDecorationGraphicOrdinal" simply fetches
the wall decoration integer associated with a
particualar wall. It is an 'ordinal' rather than an
'index' because zero is used to mean 'no decoration'.
The first one is numbered 'one'. Remember that
these numbers are relative to the level. 'One' on
level 3 means something different than 'one' on
level 4. There is a table for each level which is
used to convert these 'ordinals' to 'wall decoration
numbers'.
We have a language barrior.
I think you are suggesting major changes to CSBwin.and a reckless suggestion: custom wall/floor decoration feature
Development of CSBwin is terminated. I have fixed
some bugs and will continue to do so but I am not
going to add any new features that require more than
a couple lines of code.
Have you tried large Wall Decorations using the
standard engine? I think it might work. I am wlling
to help if you want to try harder.
The Skin code is going to be complex and will require
a lot of work. I have never done it myself except
for 'Proof of Principle'. I have never used the
tools to create the bitmaps or the Graphics.dat
file. If you want to try this, I am willing to help.
=================================
From memory.....I did not look at the code.
I hope I am not misleading you.
"WallDecorationGraphicOrdinal" simply fetches
the wall decoration integer associated with a
particualar wall. It is an 'ordinal' rather than an
'index' because zero is used to mean 'no decoration'.
The first one is numbered 'one'. Remember that
these numbers are relative to the level. 'One' on
level 3 means something different than 'one' on
level 4. There is a table for each level which is
used to convert these 'ordinals' to 'wall decoration
numbers'.
-
- Artisan
- Posts: 178
- Joined: Wed Dec 17, 2003 1:39 am
- Location: Osaka, Japan
- Contact:
hi.
thanks for clear answer of development stance for CSBwin 10. i see it.
before publishing my optimistic plan i need to invest latest CSBwin if i can realize following thing with it: coexistance of both wallset and custom decoration objects by skinning feature.
i'll work on it, and i may post help request if i get stucked.
thanks for clear answer of development stance for CSBwin 10. i see it.
i will try that way when i feel my first plan is difficult to accomplish.Have you tried large Wall Decorations using the
standard engine? I think it might work. I am wlling
to help if you want to try harder.
before publishing my optimistic plan i need to invest latest CSBwin if i can realize following thing with it: coexistance of both wallset and custom decoration objects by skinning feature.
i'll work on it, and i may post help request if i get stucked.
- Paul Stevens
- CSBwin Guru
- Posts: 4318
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
-
- Artisan
- Posts: 178
- Joined: Wed Dec 17, 2003 1:39 am
- Location: Osaka, Japan
- Contact:
-
- Artisan
- Posts: 178
- Joined: Wed Dec 17, 2003 1:39 am
- Location: Osaka, Japan
- Contact:
hi.
just suggestion even if it is rejected in some reasons: how about secondary skin?
allocate 2 skin selection per one dungeon cell.
primary skin: it is for rendering wall set.
secondary skin: for rendering decoration objects as overlay.
it will be able to reuse exist wallset skin codes even if the code is not mine, when custom decoration is needed.
just suggestion even if it is rejected in some reasons: how about secondary skin?
allocate 2 skin selection per one dungeon cell.
primary skin: it is for rendering wall set.
secondary skin: for rendering decoration objects as overlay.
it will be able to reuse exist wallset skin codes even if the code is not mine, when custom decoration is needed.
-
- Artisan
- Posts: 178
- Joined: Wed Dec 17, 2003 1:39 am
- Location: Osaka, Japan
- Contact:
probably i am searching wrong places. can i test latest viewport compiler?
any of the words WallDecorationGraphicOrdinal, WallDecorationGraphicOrdinalF0 and WallDecorationGraphicOrdinalF1 won't be recognized by ViewportCompiler in CustomGraphicsDemo21 package.
here is head part of skin code to compile
i found alternative way to do equivalent working of WallDecorationGraphicOrdinal by doing trial and errors yesterday.
i could get the following codes by analyzing viewport source code in CSBwin100Src.
i'm testing if their function helps enough to replace StdDrawWallDecoration codes used in default skin code.
any of the words WallDecorationGraphicOrdinal, WallDecorationGraphicOrdinalF0 and WallDecorationGraphicOrdinalF1 won't be recognized by ViewportCompiler in CustomGraphicsDemo21 package.
Code: Select all
Viewport Compiler Version 1.2
Error during compile at line 8
Undefined word WallDecorationGraphicOrdinal
Press ENTER
Code: Select all
Viewport Compiler Version 1.2
Error during compile at line 8
Undefined word WallDecorationGraphicOrdinalF0
Press ENTER
Code: Select all
Viewport Compiler Version 1.2
Error during compile at line 8
Undefined word WallDecorationGraphicOrdinalF1
Press ENTER
Code: Select all
// ****************************************************************
// Do nothing
// ****************************************************************
: NOP
;
: TEST
WallDecorationGraphicOrdinalF1
;
i could get the following codes by analyzing viewport source code in CSBwin100Src.
Code: Select all
: D3L1p0 F3L1 GetDecoration0 ;
: D3p0 F3 GetDecoration0 ;
: D3R1p0 F3R1 GetDecoration0 ;
: D2L1p0 F2L1 GetDecoration0 ;
: D2p0 F2 GetDecoration0 ;
: D2R1p0 F2R1 GetDecoration0 ;
: D1L1p0 F1L1 GetDecoration0 ;
: D1p0 F1 GetDecoration0 ;
: D1R1p0 F1R1 GetDecoration0 ;
: D0p0 F0 GetDecoration0 ;
: D3L1p1 F3L1DoorRecordIndex ;
: D3p1 F3DoorRecordIndex ;
: D3R1p1 F3R1DoorRecordIndex ;
: D2L1p1 F2L1DoorRecordIndex ;
: D2p1 F2DoorRecordIndex ;
: D2R1p1 F2R1DoorRecordIndex ;
: D1L1p1 F1L1DoorRecordIndex ;
: D1p1 F1DoorRecordIndex ;
: D1R1p1 F1R1DoorRecordIndex ;
: D0p1 F0DoorRecordIndex ;
: D4L1p2 FloorDecorationGraphicOrdinalF4L1 ;
: D4p2 FloorDecorationGraphicOrdinalF4 ;
: D4R1p2 FloorDecorationGraphicOrdinalF4R1 ;
: D3L1p2 FloorDecorationGraphicOrdinalF3L1 ;
: D3p2 FloorDecorationGraphicOrdinalF3 ;
: D3R1p2 FloorDecorationGraphicOrdinalF3R1 ;
: D2L1p2 FloorDecorationGraphicOrdinalF2L1 ;
: D2p2 FloorDecorationGraphicOrdinalF2 ;
: D2R1p2 FloorDecorationGraphicOrdinalF2R1 ;
: D1L1p2 FloorDecorationGraphicOrdinalF1L1 ;
: D1p2 FloorDecorationGraphicOrdinalF1 ;
: D1R1p2 FloorDecorationGraphicOrdinalF1R1 ;
: D0L1p2 FloorDecorationGraphicOrdinalF0L1 ;
: D0p2 FloorDecorationGraphicOrdinalF0 ;
: D0R1p2 FloorDecorationGraphicOrdinalF0R1 ;
- Paul Stevens
- CSBwin Guru
- Posts: 4318
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
The 'Viewport.cpp' source code is certainly
useful. But the 'Skin0Code.txt' that comes with
the custom graphics demo is actual 'Skin'
code (rather than C++ code) and is probably
a better place to start.
The 'Skin0Code.txt' should display the dungeon
in exactly the same way as the C++ code does.
It used to, anyway. I built it as a test case
as Proof of Completeness.
So if you start with the Skin0Code.txt and then
modify it as necessary, that should be the easy way
to get everything in the proper place.
It has been a long time since I did any of this
and it all appears rather foreign to me now. It
will take a lot of study to become proficient.
useful. But the 'Skin0Code.txt' that comes with
the custom graphics demo is actual 'Skin'
code (rather than C++ code) and is probably
a better place to start.
The 'Skin0Code.txt' should display the dungeon
in exactly the same way as the C++ code does.
It used to, anyway. I built it as a test case
as Proof of Completeness.
So if you start with the Skin0Code.txt and then
modify it as necessary, that should be the easy way
to get everything in the proper place.
It has been a long time since I did any of this
and it all appears rather foreign to me now. It
will take a lot of study to become proficient.
-
- Artisan
- Posts: 178
- Joined: Wed Dec 17, 2003 1:39 am
- Location: Osaka, Japan
- Contact:
ok.
my trial continues until i knock into any technical difficulty to get over.
help plz!
my copy of ViewportCompiler.exe cannot recognize 2 words CreateVirtualAffineMask and BitmapInfo. but i confirmed that their words are surely defined in Viewport.cpp of CSBwin100Src. so i believe latest viewport compiler already equips it. would you release latest version of viewport compiler?
i just wanna try both CreateVirtualAffineMask and BitmapInfo.
my trial continues until i knock into any technical difficulty to get over.
help plz!
my copy of ViewportCompiler.exe cannot recognize 2 words CreateVirtualAffineMask and BitmapInfo. but i confirmed that their words are surely defined in Viewport.cpp of CSBwin100Src. so i believe latest viewport compiler already equips it. would you release latest version of viewport compiler?
i just wanna try both CreateVirtualAffineMask and BitmapInfo.
- Paul Stevens
- CSBwin Guru
- Posts: 4318
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
- Paul Stevens
- CSBwin Guru
- Posts: 4318
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
I cannot find the source code.
The latest ViewportCompiler I can find is
version 1.3 24Aug2005
http://www.dianneandpaul.net/CSBwin/Vie ... mpiler.rar
What version are you using?
If necessary, I will rewrite the thing. But I don't
look forward to doing it.
The latest ViewportCompiler I can find is
version 1.3 24Aug2005
http://www.dianneandpaul.net/CSBwin/Vie ... mpiler.rar
What version are you using?
If necessary, I will rewrite the thing. But I don't
look forward to doing it.
-
- Artisan
- Posts: 178
- Joined: Wed Dec 17, 2003 1:39 am
- Location: Osaka, Japan
- Contact:
hi.
i confirmed your new version 1.3 24Aug2005 could resolve the 2 words CreateVirtualAffineMask and BitmapInfo. it would be the latest version i wanted. thank you for finding it!
plz give me some while to examine detail working of their functions.
p.s.
i'm using Version 1.2 included in CustomGraphicsDemo21. time stamp is 2005/08/14 09:57.
i confirmed your new version 1.3 24Aug2005 could resolve the 2 words CreateVirtualAffineMask and BitmapInfo. it would be the latest version i wanted. thank you for finding it!
plz give me some while to examine detail working of their functions.
p.s.
i'm using Version 1.2 included in CustomGraphicsDemo21. time stamp is 2005/08/14 09:57.
- Paul Stevens
- CSBwin Guru
- Posts: 4318
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
-
- Artisan
- Posts: 178
- Joined: Wed Dec 17, 2003 1:39 am
- Location: Osaka, Japan
- Contact:
hi.
it took a while. here is an example for custom wall decoration stuff by CustomGraphicsEngine.
http://kkdf2.sakura.ne.jp/dmfiles/cgeSa ... .Rev.0.rar
this sample uses normal custom graphics graphics drawing also used by custom wallset stuff. there is no technical advance other than custom wallset stuff.
the most time was spent for writing compiler. that compiler helps to write complex skincode in a procedural language like C. but it doesn't accept strict C programming. it needs to know compiler's habit on usual use. anyway it has no document, i'll write document if anyone try to use it. thanks.
it took a while. here is an example for custom wall decoration stuff by CustomGraphicsEngine.
http://kkdf2.sakura.ne.jp/dmfiles/cgeSa ... .Rev.0.rar
this sample uses normal custom graphics graphics drawing also used by custom wallset stuff. there is no technical advance other than custom wallset stuff.
the most time was spent for writing compiler. that compiler helps to write complex skincode in a procedural language like C. but it doesn't accept strict C programming. it needs to know compiler's habit on usual use. anyway it has no document, i'll write document if anyone try to use it. thanks.