// // G A M E.O.N.E - LOW LEVEL LIB V1.0 // Copyright (C) 2001 LEVEL ONE ENTERTAINMENT, // Licensed under the terms of LGPL. //:--------------------------------------------------------------------------- //:Description // // FRAMEWORK global object class LAYER // ////////////////////////////////////////////////////////////////////// #if !defined(_LAYER_H) #define _LAYER_H #include "llfrm_actor.h" class CLayer : public CActor { public: CLayer(); virtual ~CLayer(); const char * GetName() { return m_obj_name; }; int GetZOrder() { return m_zorder; }; void SetName(const char * name); void SetZOrder(int newZorder ); void SetAnchor(const char * name ); virtual bool Message(const char *Type ); virtual void SendMsg(const char *Type ); virtual bool ParseMsg(const char * arg); // override llgfx_sRECT m_cliprect; bool m_visible; // state flag bool m_valid; // true when initialized bool m_bParalax; CVec2f m_paralax; // faktor x,y bool m_tileblit; static CVec2f last_position; // used by the offset message /************************************************************************/ /* Native C++ msg interface */ /************************************************************************/ void visible(bool vis) { m_visible = vis; } void xypos(CVec2f &newpos) { last_position = m_position = newpos; } void xpos(float newx) { last_position.m_u = m_position.m_u = newx; } void ypos(float newy) { last_position.m_v = m_position.m_v = newy; } void offset(CVec2f &offset) { m_position = offset + last_position; last_position= m_position;} void cliprect(s_rect &newcliprect) { ll2d::CopyRect(m_cliprect,newcliprect); m_bVDBlit = !ll2d::IsRectEmpty(m_cliprect); } void blitfx_angle(float newangle){ m_blitfx.angle_z = newangle; } // radians void blitfx_scale_x(float newscale) { m_scale.m_u = newscale; }; void blitfx_scale_y(float newscale) { m_scale.m_v = newscale; }; void blitfx_fixalpha(float newalpha) { m_blitfx.fixalpha = newalpha; }; void blitfx_color(TxU32 color) { m_blitfx.color1 = color; }; void blitflag( int newblitflags) { m_blitflag = newblitflags; } void zorder(int newzorder) { m_zorder=newzorder; CRoot::PostMsg("layer.sort"); } void paralax(CVec2f &dir){m_paralax = dir; m_bParalax = (dir!= CVec2f(1.0f,1.0f));}; void setparent(const char*parentname){CActor * parent; if( gl_root && NULL!= (parent = gl_root->FindActor( parentname )) ) {SetParent( parent );}} void script_parse(const char*script){CActor::ParseLine(script);} void script(const char*scriptfilename){ CActor::ParseSkriptFile(scriptfilename); } protected: const char *cur_msg; // temp pointer, set by Message() virtual const char * ExtractMessage( const char * message ); int m_zorder; // layer zorder protected: bool m_bVDBlit; // true if cliprect set }; #endif // !defined(_LAYER_H)