// BlinkGame - Hunt for the Lost Pixels
// an SDL game in honor of the BlinkenArea crew
//
// (C) 2005-06 Rene Schickbauer
//
// See License.txt for licensing information
//
#ifdef NOP_CODE
/*--------------------------------------------------------------------
					CVS AUTO-GENERATED INFO
$Author: cavac $
$Date: 2006/03/15 22:54:08 $
$Name: rel-0-3-patches $
$Revision: 1.3 $
$State: Exp $

$Log: fgobjects.h,v $
Revision 1.3  2006/03/15 22:54:08  cavac
* Added property/methods for setting FG objects as "ontop" which renders
them on top of everything.
* Changed levelhandler.* so that it uses the newly added "AddPixel" function
instead of doing it internally in the file parser state machine.
* Added functionality for bonus live collectables
* Adapted lua bindings so it can utilize above properties
* Removed l2b prefix from lua bindings and adapted scripts
* Added temporary 32x32 explosion graphics
* Adapted level0.bsl (Testlevel/scripting) so it has a small riddle:
  You have to turn on all switches and press the emergency stop button
  while the neon sign is ON (e.g. it lights up yellow). two small
  explosions leave one pixel and one bonus live collectible behind.
  (You can NOT finish the level without collecting the second pixel!)

Revision 1.2  2006/03/02 13:03:42  cavac
Re-formatted all .cpp and .h files a bit to get rid of the TAB/SPACE mess
that makes troubles with XCode's "re-format" feature

Revision 1.1  2006/02/24 18:48:26  cavac
Finally added real scripting support
Added Testlevel (level0) which can be enabled from globals.h

--------------------------------------------------------------------*/
#endif //NOP_CODE

#ifndef FGOBJECTS_H
#define FGOBJECTS_H

typedef struct _FGOBJS {
	bool isBlocking;
	bool isVisible;
	bool isOnTop;
	Uint32 gfxobj;
	Uint32 x;
	Uint32 y;
} FGOBJS;


void initFGObjs();
void deInitFGObjs();
Uint32 addFGObjGFX(char *fname);
Uint32 addFGObj(Uint32 gfxobj, Uint32 x, Uint32 y, bool isBlocking, bool isVisible, bool isOnTop);
void paintSingleFGObj(SDL_Surface *gfx, Sint32 x, Sint32 y);
void paintFGObjs(Uint32 xoffs, Uint32 yoffs, bool topObjects);
Uint32 getFGObjsColission(Uint32 playerx, Uint32 playery);
void doFGPlayerAction(Uint32 playerx, Uint32 playery);
void setFGObjSetVisible(Uint32 obj, bool visible);
void setFGObjSetBlocking(Uint32 obj, bool blocking);
void setFGObjSetOnTop(Uint32 obj, bool ontop);
void setFGObjSetGFX(Uint32 obj, Uint32 gfx);

#endif // FGOBJECTS_H
