paulo@0: /* Platform hooks for LOCKJAW, an implementation of the Soviet Mind Game paulo@0: paulo@0: Copyright (C) 2006 Damian Yerrick paulo@0: paulo@0: This work is free software; you can redistribute it and/or modify paulo@0: it under the terms of the GNU General Public License as published by paulo@0: the Free Software Foundation; either version 2 of the License, or paulo@0: (at your option) any later version. paulo@0: paulo@0: This program is distributed in the hope that it will be useful, paulo@0: but WITHOUT ANY WARRANTY; without even the implied warranty of paulo@0: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the paulo@0: GNU General Public License for more details. paulo@0: paulo@0: You should have received a copy of the GNU General Public License paulo@0: along with this program; if not, write to the Free Software paulo@0: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA paulo@0: paulo@0: Original game concept and design by Alexey Pajitnov. paulo@0: The Software is not sponsored or endorsed by Alexey Pajitnov, Elorg, paulo@0: or The Tetris Company LLC. paulo@0: paulo@0: */ paulo@0: paulo@0: #ifndef LJPLAY_H paulo@0: #define LJPLAY_H paulo@0: #include "lj.h" paulo@0: #include "ljcontrol.h" paulo@0: paulo@0: /** paulo@0: * Plays Lockjaw. paulo@0: * @param v view paulo@0: */ paulo@0: void play(LJView *const v[], size_t nPlayers); paulo@0: paulo@0: /* paulo@0: * Platform-native code must implement the following callbacks, paulo@0: * which will be described later: paulo@0: */ paulo@0: LJBits readPad(unsigned int player); paulo@0: void updField(const LJView *const v, LJBits rows); paulo@0: void startingAnimation(LJView *v); paulo@0: void blitField(LJView *v); paulo@0: int pauseGame(struct LJPCView *v); paulo@0: void playSoundEffects(LJView *v, LJBits sounds, int countdown); paulo@0: void drawShadow(LJView *v); paulo@0: void drawFallingPiece(LJView *v); paulo@0: void drawScore(LJView *v); paulo@0: int getTime(void); paulo@0: void yieldCPU(void); paulo@0: void ljBeginDraw(LJView *v, int sync); paulo@0: void ljEndDraw(LJView *v); paulo@0: int ljHandleConsoleButtons(LJView *v); paulo@0: void playRedrawScreen(LJView *v); paulo@0: paulo@0: paulo@0: #endif