added some functions to SkyLogic, -Screen, -Talk and -Disk, moved SkyGrid out of SkyState
svn-id: r8266
This commit is contained in:
parent
cee02068ca
commit
3ac5b4ccfa
10 changed files with 115 additions and 48 deletions
|
@ -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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue