Final scene
dougmencken opened this issue · comments
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
Here’s game saved just before final scene
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>
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 )
{
There’s need for walls of living trees, not dead fences
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 );
}
}
}
}
closing this now