added some functions to SkyLogic, -Screen, -Talk and -Disk, moved SkyGrid out of SkyState

svn-id: r8266
This commit is contained in:
Robert Göffringmann 2003-06-02 06:42:42 +00:00
parent cee02068ca
commit 3ac5b4ccfa
10 changed files with 115 additions and 48 deletions

View file

@ -84,6 +84,13 @@ SkyScreen::~SkyScreen(void) {
if (_backScreen) free(_backScreen);
}
void SkyScreen::clearScreen(void) {
memset(_currentScreen, 0, FULL_SCREEN_WIDTH * FULL_SCREEN_HEIGHT);
_system->copy_rect(_currentScreen, GAME_SCREEN_WIDTH, 0, 0, GAME_SCREEN_WIDTH, GAME_SCREEN_HEIGHT);
_system->update_screen();
}
//set a new palette, pal is a pointer to dos vga rgb components 0..63
void SkyScreen::setPalette(uint8 *pal) {
@ -366,6 +373,17 @@ void SkyScreen::startSequence(uint16 fileNum) {
_seqInfo.seqDataPos = _seqInfo.seqData + 1;
_seqInfo.delay = SEQ_DELAY;
_seqInfo.running = true;
_seqInfo.runningItem = false;
}
void SkyScreen::startSequenceItem(uint16 itemNum) {
_seqInfo.seqData = (uint8*)SkyState::fetchItem(itemNum);
_seqInfo.framesLeft = _seqInfo.seqData[0];
_seqInfo.seqDataPos = _seqInfo.seqData + 1;
_seqInfo.delay = SEQ_DELAY;
_seqInfo.running = true;
_seqInfo.runningItem = true;
}
void SkyScreen::stopSequence() {
@ -423,16 +441,11 @@ void SkyScreen::processSequence(void) {
}
if (_seqInfo.framesLeft == 0) {
_seqInfo.running = false;
free(_seqInfo.seqData);
if (!_seqInfo.runningItem) free(_seqInfo.seqData);
_seqInfo.seqData = _seqInfo.seqDataPos = NULL;
}
}
bool SkyScreen::sequenceRunning(void) {
return _seqInfo.running;
}
//- sprites.asm routines
void SkyScreen::spriteEngine(void) {