@@ -133,27 +133,18 @@ ScenarioGUI *g_pScenarioGUI = 0;
133
133
Controller *g_pMainMenuController = 0 ;
134
134
135
135
enum StarSize {
136
- StarSmall = 0 ,
137
- StarLarge,
138
- StarHuge,
136
+ StarSmall = 0 ,
137
+ StarLarge,
138
+ StarHuge,
139
139
};
140
140
141
141
struct Star {
142
- // Bitmap representation
143
- BITMAP *m_pBitmap;
144
- // Center location on screen
145
- Vector m_Pos;
146
- // Bitmap offset
147
- // int m_Offset;
148
- // Scrolling ratio
149
- float m_ScrollRatio;
150
- // Normalized intensity 0-1.0
151
- float m_Intensity;
152
- // Type
153
- StarSize m_Size;
154
-
155
- Star () { m_pBitmap = 0 ; m_Pos.Reset (); m_ScrollRatio = 1.0 ; m_Intensity = 1.0 ; m_Size = StarSmall; }
156
- Star (BITMAP *pBitmap, Vector &pos, float scrollRatio, float intensity) { m_pBitmap = pBitmap; m_Pos = pos; m_ScrollRatio = scrollRatio; m_Intensity = intensity; }
142
+ BITMAP *m_Bitmap = nullptr ;
143
+ int m_PosX = 0 ;
144
+ int m_PosY = 0 ;
145
+ float m_ScrollRatio = 1 .0F ;
146
+ int m_Intensity = 0 ; // !< Intensity value on a scale from 0 to 255.
147
+ StarSize m_Size = StarSmall;
157
148
};
158
149
159
150
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -420,29 +411,26 @@ bool PlayIntroTitle() {
420
411
BITMAP **apStarSmallBitmaps = starSmallFile.GetAsAnimation (starSmallBitmapCount);
421
412
BITMAP **apStarLargeBitmaps = starLargeFile.GetAsAnimation (starLargeBitmapCount);
422
413
BITMAP **apStarHugeBitmaps = starHugeFile.GetAsAnimation (starHugeBitmapCount);
423
- Star *aStars = new Star[starCount];
424
- StarSize size;
425
-
426
- for (int star = 0 ; star < starCount; ++star) {
427
- if (RandomNum () < 0 .95F ) {
428
- aStars[star].m_Size = StarSmall;
429
- aStars[star].m_pBitmap = apStarSmallBitmaps[RandomNum (0 , starSmallBitmapCount - 1 )];
430
- aStars[star].m_Intensity = RandomNum (0 .001F , 0 .5F );
431
- }
432
- else if (RandomNum () < 0 .85F ) {
433
- aStars[star].m_Size = StarLarge;
434
- aStars[star].m_pBitmap = apStarLargeBitmaps[RandomNum (0 , starLargeBitmapCount - 1 )];
435
- aStars[star].m_Intensity = RandomNum (0 .6F , 1 .0F );
436
- }
437
- else {
438
- aStars[star].m_Size = StarHuge;
439
- aStars[star].m_pBitmap = apStarHugeBitmaps[RandomNum (0 , starLargeBitmapCount - 1 )];
440
- aStars[star].m_Intensity = RandomNum (0 .9F , 1 .0F );
441
- }
442
- aStars[star].m_Pos .SetXY (resX * RandomNum (), pBackdrop->GetBitmap ()->h * RandomNum ());// resY * RandomNum());
443
- aStars[star].m_Pos .Floor ();
414
+ Star *stars = new Star[starCount];
415
+
416
+ for (int star = 0 ; star < starCount; ++star) {
417
+ if (RandomNum () < 0 .95F ) {
418
+ // Default size is StarSmall.
419
+ stars[star].m_Bitmap = apStarSmallBitmaps[RandomNum (0 , starSmallBitmapCount - 1 )];
420
+ stars[star].m_Intensity = RandomNum (0 , 92 );
421
+ } else if (RandomNum () < 0 .85F ) {
422
+ stars[star].m_Size = StarLarge;
423
+ stars[star].m_Bitmap = apStarLargeBitmaps[RandomNum (0 , starLargeBitmapCount - 1 )];
424
+ stars[star].m_Intensity = RandomNum (111 , 185 );
425
+ } else {
426
+ stars[star].m_Size = StarHuge;
427
+ stars[star].m_Bitmap = apStarHugeBitmaps[RandomNum (0 , starLargeBitmapCount - 1 )];
428
+ stars[star].m_Intensity = RandomNum (166 , 185 );
429
+ }
430
+ stars[star].m_PosX = RandomNum (0 , resX);
431
+ stars[star].m_PosY = RandomNum (0 , pBackdrop->GetBitmap ()->h );
444
432
// To match the nebula scroll
445
- aStars [star].m_ScrollRatio = backdropScrollRatio;
433
+ stars [star].m_ScrollRatio = backdropScrollRatio;
446
434
}
447
435
448
436
// Font stuff
@@ -596,14 +584,13 @@ bool PlayIntroTitle() {
596
584
Box backdropBox;
597
585
pBackdrop->Draw (g_FrameMan.GetBackBuffer32 (), backdropBox, scrollOffset * backdropScrollRatio);
598
586
599
- Vector starDrawPos;
600
587
for (int star = 0 ; star < starCount; ++star)
601
588
{
602
- size = aStars[star]. m_Size ;
603
- int intensity = 185 * aStars[star]. m_Intensity + (size == StarSmall ? 35 : 70 ) * RandomNum ( );
604
- set_screen_blender (intensity, intensity, intensity, intensity) ;
605
- starDrawPos. SetXY (aStars [star].m_Pos . m_X , aStars[star]. m_Pos . m_Y - scrollOffset.m_Y * aStars [star].m_ScrollRatio );
606
- draw_trans_sprite (g_FrameMan.GetBackBuffer32 (), aStars [star].m_pBitmap , starDrawPos. GetFloorIntX (), starDrawPos. GetFloorIntY () );
589
+ const int intensity = stars[star]. m_Intensity + RandomNum ( 0 , (stars[star]. m_Size == StarSmall) ? 35 : 70 ) ;
590
+ set_screen_blender (intensity, intensity, intensity, intensity );
591
+ const int &starDrawPosX = stars[star]. m_PosX ;
592
+ int starDrawPosY = stars [star].m_PosY - static_cast < int >( scrollOffset.m_Y * stars [star].m_ScrollRatio );
593
+ draw_trans_sprite (g_FrameMan.GetBackBuffer32 (), stars [star].m_Bitmap , starDrawPosX, starDrawPosY );
607
594
}
608
595
609
596
planetPos.SetXY (g_FrameMan.GetResX () / 2 , 567 - scrollOffset.GetFloorIntY ());
@@ -1538,8 +1525,8 @@ bool PlayIntroTitle() {
1538
1525
pMoon = nullptr ;
1539
1526
delete pStation;
1540
1527
pStation = nullptr ;
1541
- delete[] aStars ;
1542
- aStars = nullptr ;
1528
+ delete[] stars ;
1529
+ stars = nullptr ;
1543
1530
1544
1531
if (g_FrameMan.ResolutionChanged ()) { PlayIntroTitle (); }
1545
1532
0 commit comments