Final scene
dougmencken opened this issue · 13 comments
dougmencken commented
Need some nice music for final scene. Maybe some looooong ‘n’ jazzy mix of various room entry tunes?
And yep, final room freezes after some time
dougmencken commented
Here’s game saved just before final scene
dougmencken commented
dougmencken commented
On final scene, there’re tints from “ static-head ” on “ static-heels ”
Maybe just use “ plain ” head, heels, and headoverheels there ? And remove these
<!-- Static Head -->
<item label="static-head">
<widthX>12</widthX>
<widthY>12</widthY>
<height>24</height>
<directionFrames>2</directionFrames>
<mortal>false</mortal>
<weight>0</weight>
<framesDelay>0</framesDelay>
<speed>0</speed>
<picture file="freedonian-head.png">
<frameWidth>48</frameWidth>
<frameHeight>48</frameHeight>
</picture>
<shadow file="freedonian-head-shadows.png">
<shadowWidth>48</shadowWidth>
<shadowHeight>25</shadowHeight>
</shadow>
<frame>0</frame>
</item>
<!-- Static Heels -->
<item label="static-heels">
<widthX>12</widthX>
<widthY>12</widthY>
<height>24</height>
<directionFrames>2</directionFrames>
<mortal>false</mortal>
<weight>0</weight>
<framesDelay>0</framesDelay>
<speed>0</speed>
<picture file="freedonian-heels.png">
<frameWidth>48</frameWidth>
<frameHeight>48</frameHeight>
</picture>
<shadow file="freedonian-heels-shadows.png">
<shadowWidth>48</shadowWidth>
<shadowHeight>25</shadowHeight>
</shadow>
<frame>0</frame>
</item>
dougmencken commented
dougmencken commented
Yep, with 85a6cce it looks prettier
...besides the absence of arrived character
oops, can’t add the second character "headoverheels" to this room
But I have this patch to fix it
--- a/src/Room.cpp
+++ b/src/Room.cpp
@@ -478,7 +478,7 @@ bool Room::addPlayerToRoom( PlayerItem* playerItem, bool playerEntersRoom )
mediator->clearStackOfCollisions ();
- std::string labelOfItem = playerItem->getLabel() ;
+ std::string labelOfItem = "character " + playerItem->getOriginalLabel() ;
unsigned int uniqueNumberOfItem = nextNumbers[ labelOfItem ] ;
if ( uniqueNumberOfItem > 0 ) // is there some player with the same label
{
@@ -650,7 +650,7 @@ bool Room::removePlayerFromRoom( PlayerItem* playerItem, bool playerExitsRoom )
"\" from room \"" << getNameOfFileWithDataAboutRoom() << "\"" << std::endl ;
mediator->removeFreeItemFromList( playerItem );
- nextNumbers[ playerItem->getLabel() ] -- ;
+ nextNumbers[ "character " + playerItem->getOriginalLabel() ] -- ;
if ( this->shadingScale < 256 && playerItem->getImageOfShadow() != nilPointer )
{
dougmencken commented
dougmencken commented
There’s need for walls of living trees, not dead fences
dougmencken commented
dougmencken commented
dougmencken commented
dougmencken commented
dougmencken commented
post picturum~ yeah, I added filling of transparent pixels with pattern of checkerboard
void Picture::fillWithTransparencyChequerboard( const unsigned int sizeOfSquare )
{
const unsigned int sizeOfSquareDoubled = sizeOfSquare << 1 ;
unsigned int width = getWidth ();
unsigned int height = getHeight ();
for ( unsigned int y = 0 ; y < height ; y ++ )
{
for ( unsigned int x = 0 ; x < width ; x ++ )
{
if ( getPixelAt( x, y ).isKeyColor() )
{
Color whichColor = Color::whiteColor() ;
if ( ( ( y % sizeOfSquare ) == ( y % sizeOfSquareDoubled ) && ( x % sizeOfSquare ) != ( x % sizeOfSquareDoubled ) ) ||
( ( y % sizeOfSquare ) != ( y % sizeOfSquareDoubled ) && ( x % sizeOfSquare ) == ( x % sizeOfSquareDoubled ) ) )
{
whichColor = Color::gray75Color() ;
}
putPixelAt( x, y, whichColor );
}
}
}
}
dougmencken commented
closing this now