home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-09-29 | 2.1 KB | 108 lines | [TEXT/KAHL] |
- #include <stdlib.h>
-
- #include <Windows.h>
- #include <QDOffscreen.h>
- #include <Memory.h>
- #include <Fonts.h>
- #include <Packages.h>
- #include <SegLoad.h>
- #include <ToolUtils.h>
- #include <TextEdit.h>
- #include <Files.h>
-
- #include "C_randomizer.h"
-
- #include "general.h"
- #include "port.h"
- #include "gworld.h"
- #include "scrolling_noise.h"
-
- scrolling_noise::scrolling_noise( int breedte, int hoogte, int diepte,
- short dh, short dv, port &original)
- : gworld( breedte, hoogte, diepte, original)
- {
- init( breedte, hoogte, diepte, dh, dv);
- }
-
- scrolling_noise::scrolling_noise( int breedte, int hoogte, int diepte,
- short dh, short dv, CTabHandle cTable)
- : gworld( breedte, hoogte, diepte, cTable)
- {
- init( breedte, hoogte, diepte, dh, dv);
- }
-
- void scrolling_noise::init( int breedte, int hoogte, int diepte, short dh, short dv)
- {
- d_h = dh;
- d_v = dv;
- //
- // We could improve on this; if both dh and dv are nonzero there is
- // some overlap between destHorRect and destVertRect. It probably is
- // not worthwile to optimize for this, however.
- //
- if( d_h > 0)
- {
- newHor = new gworld( d_h, hoogte, diepte);
-
- SetRect( &origHorRect, 0, 0, d_h, hoogte);
- SetRect( &destHorRect, 0, 0, d_h, hoogte);
-
- } else if( d_h < 0) {
-
- newHor = new gworld( -d_h, hoogte, diepte);
-
- SetRect( &origHorRect, 0, 0, -d_h, hoogte);
- SetRect( &destHorRect, breedte + d_h, 0, breedte, hoogte);
-
- } else {
- newHor = 0;
- }
-
- if( d_v > 0)
- {
- newVert = new gworld( breedte, d_v, diepte);
-
- SetRect( &origVertRect, 0, 0, breedte, d_v);
-
- SetRect( &destVertRect, 0, 0, breedte, d_v);
- } else if( d_v < 0) {
-
- newVert = new gworld( breedte, -d_v, diepte);
-
- SetRect( &origVertRect, 0, 0, breedte, -d_v);
- SetRect( &destVertRect, 0, hoogte + d_v, breedte, hoogte);
-
- } else {
- newVert = 0;
- }
- fill_random();
- }
-
- scrolling_noise::~scrolling_noise()
- {
- if( newHor != 0)
- {
- delete newHor;
- }
- if( newVert != 0)
- {
- delete newVert;
- }
- }
-
- void scrolling_noise::step() const
- {
- scroll( d_h, d_v);
-
- if( newHor != 0)
- {
- newHor->fill_random();
- copyfrom( *newHor, origHorRect, destHorRect);
- }
- if( newVert != 0)
- {
- newVert->fill_random();
- copyfrom( *newVert, origVertRect, destVertRect);
- }
- }
-