Initial commit of Command & Conquer Generals and Command & Conquer Generals Zero Hour source code.
This commit is contained in:
parent
2e338c00cb
commit
3d0ee53a05
6072 changed files with 2283311 additions and 0 deletions
|
@ -0,0 +1,697 @@
|
|||
/*
|
||||
** Command & Conquer Generals Zero Hour(tm)
|
||||
** Copyright 2025 Electronic Arts Inc.
|
||||
**
|
||||
** This program is free software: you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation, either version 3 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** This program is distributed in the hope that it will be useful,
|
||||
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
** GNU General Public License for more details.
|
||||
**
|
||||
** You should have received a copy of the GNU General Public License
|
||||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// (c) 2001-2003 Electronic Arts Inc. //
|
||||
// //
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// FILE: GameWindowTransitions.h /////////////////////////////////////////////////
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Electronic Arts Pacific.
|
||||
//
|
||||
// Confidential Information
|
||||
// Copyright (C) 2002 - All Rights Reserved
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// created: Dec 2002
|
||||
//
|
||||
// Filename: GameWindowTransitions.h
|
||||
//
|
||||
// author: Chris Huybregts
|
||||
//
|
||||
// purpose:
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __GAME_WINDOW_TRANSITIONS_H_
|
||||
#define __GAME_WINDOW_TRANSITIONS_H_
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// SYSTEM INCLUDES ////////////////////////////////////////////////////////////
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// USER INCLUDES //////////////////////////////////////////////////////////////
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// FORWARD REFERENCES /////////////////////////////////////////////////////////
|
||||
//-----------------------------------------------------------------------------
|
||||
class GameWindow;
|
||||
class Image;
|
||||
class DisplayString;
|
||||
//-----------------------------------------------------------------------------
|
||||
// TYPE DEFINES ///////////////////////////////////////////////////////////////
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
enum
|
||||
{
|
||||
TRANSITION_FLASH = 0,
|
||||
BUTTON_TRANSITION_FLASH,
|
||||
WIN_FADE_TRANSITION,
|
||||
WIN_SCALE_UP_TRANSITION,
|
||||
MAINMENU_SCALE_UP_TRANSITION,
|
||||
TEXT_TYPE_TRANSITION,
|
||||
SCREEN_FADE_TRANSITION,
|
||||
COUNT_UP_TRANSITION,
|
||||
FULL_FADE_TRANSITION,
|
||||
TEXT_ON_FRAME_TRANSITION,
|
||||
MAINMENU_MEDIUM_SCALE_UP_TRANSITION,
|
||||
MAINMENU_SMALL_SCALE_DOWN_TRANSITION,
|
||||
CONTROL_BAR_ARROW_TRANSITION,
|
||||
SCORE_SCALE_UP_TRANSITION,
|
||||
REVERSE_SOUND_TRANSITION,
|
||||
|
||||
MAX_TRANSITION_WINDOW_STYLES ///< Keep this last
|
||||
};
|
||||
|
||||
static const LookupListRec TransitionStyleNames[] =
|
||||
{
|
||||
{ "FLASH", TRANSITION_FLASH },
|
||||
{ "BUTTONFLASH", BUTTON_TRANSITION_FLASH },
|
||||
{ "WINFADE", WIN_FADE_TRANSITION },
|
||||
{ "WINSCALEUP", WIN_SCALE_UP_TRANSITION },
|
||||
{ "MAINMENUSCALEUP", MAINMENU_SCALE_UP_TRANSITION },
|
||||
{ "TYPETEXT", TEXT_TYPE_TRANSITION },
|
||||
{ "SCREENFADE", SCREEN_FADE_TRANSITION },
|
||||
{ "COUNTUP", COUNT_UP_TRANSITION },
|
||||
{ "FULLFADE", FULL_FADE_TRANSITION },
|
||||
{ "TEXTONFRAME", TEXT_ON_FRAME_TRANSITION },
|
||||
{ "MAINMENUMEDIUMSCALEUP", MAINMENU_MEDIUM_SCALE_UP_TRANSITION },
|
||||
{ "MAINMENUSMALLSCALEDOWN", MAINMENU_SMALL_SCALE_DOWN_TRANSITION },
|
||||
{ "CONTROLBARARROW", CONTROL_BAR_ARROW_TRANSITION },
|
||||
{ "SCORESCALEUP", SCORE_SCALE_UP_TRANSITION },
|
||||
{ "REVERSESOUND", REVERSE_SOUND_TRANSITION },
|
||||
|
||||
|
||||
|
||||
{ NULL, 0 }// keep this last!
|
||||
};
|
||||
|
||||
// base class for the transitions
|
||||
// inherit off of this adding in all the values
|
||||
class Transition
|
||||
{
|
||||
public:
|
||||
Transition ( void );
|
||||
virtual ~Transition( void );
|
||||
|
||||
virtual void init( GameWindow *win ) = 0;
|
||||
virtual void update( Int frame ) = 0;
|
||||
virtual void reverse( void ) = 0;
|
||||
virtual void draw( void ) = 0;
|
||||
|
||||
virtual void skip( void ) = 0;
|
||||
|
||||
Bool isFinished( void ) { return m_isFinished; }
|
||||
Int getFrameLength( void ){ return m_frameLength; }
|
||||
protected:
|
||||
|
||||
Int m_frameLength; // how many frames does this thing take.
|
||||
Bool m_isFinished; // when we finish we set this
|
||||
Bool m_isForward;
|
||||
Bool m_isReversed; // when we reverse we set this
|
||||
GameWindow *m_win;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class TextOnFrameTransition : public Transition
|
||||
{
|
||||
public:
|
||||
TextOnFrameTransition ( void );
|
||||
virtual ~TextOnFrameTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
TEXTONFRAMETRANSITION_START = 0,
|
||||
TEXTONFRAMETRANSITION_END = 1 // Max text type we'll allow.
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class ReverseSoundTransition : public Transition
|
||||
{
|
||||
public:
|
||||
ReverseSoundTransition ( void );
|
||||
virtual ~ReverseSoundTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
REVERSESOUNDTRANSITION_START = 0,
|
||||
REVERSESOUNDTRANSITION_FIRESOUND = 1,
|
||||
REVERSESOUNDTRANSITION_END = 2 // Max text type we'll allow.
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class FullFadeTransition : public Transition
|
||||
{
|
||||
public:
|
||||
FullFadeTransition ( void );
|
||||
virtual ~FullFadeTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
FULLFADETRANSITION_START = 0,
|
||||
FULLFADETRANSITION_END = 10 // Max text type we'll allow.
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Real m_percent;
|
||||
Int m_drawState;
|
||||
|
||||
};
|
||||
//-----------------------------------------------------------------------------
|
||||
class ControlBarArrowTransition : public Transition
|
||||
{
|
||||
public:
|
||||
ControlBarArrowTransition ( void );
|
||||
virtual ~ControlBarArrowTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
CONTROLBARARROWTRANSITION_START = 0,
|
||||
CONTROLBARARROWTRANSITION_BEGIN_FADE = 16,
|
||||
CONTROLBARARROWTRANSITION_END = 22 // Max text type we'll allow.
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_incrementPos;
|
||||
ICoord2D m_size;
|
||||
Real m_percent;
|
||||
Real m_fadePercent;
|
||||
Int m_drawState;
|
||||
const Image* m_arrowImage;
|
||||
|
||||
};
|
||||
//-----------------------------------------------------------------------------
|
||||
class ScreenFadeTransition : public Transition
|
||||
{
|
||||
public:
|
||||
ScreenFadeTransition ( void );
|
||||
virtual ~ScreenFadeTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
SCREENFADETRANSITION_START = 0,
|
||||
SCREENFADETRANSITION_END = 30 // Max text type we'll allow.
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Real m_percent;
|
||||
Int m_drawState;
|
||||
|
||||
};
|
||||
//-----------------------------------------------------------------------------
|
||||
class CountUpTransition : public Transition
|
||||
{
|
||||
public:
|
||||
CountUpTransition ( void );
|
||||
virtual ~CountUpTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
COUNTUPTRANSITION_START = 0,
|
||||
COUNTUPTRANSITION_END = 30 // Max text type we'll allow.
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
UnicodeString m_fullText;
|
||||
UnicodeString m_partialText;
|
||||
Int m_intValue;
|
||||
Int m_currentValue;
|
||||
enum{
|
||||
COUNT_ONES = 1,
|
||||
COUNT_100S = 100,
|
||||
COUNT_1000S = 1000
|
||||
};
|
||||
Int m_countState;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class TextTypeTransition : public Transition
|
||||
{
|
||||
public:
|
||||
TextTypeTransition ( void );
|
||||
virtual ~TextTypeTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
TEXTTYPETRANSITION_START = 0,
|
||||
TEXTTYPETRANSITION_END = 30 // Max text type we'll allow.
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
UnicodeString m_fullText;
|
||||
UnicodeString m_partialText;
|
||||
DisplayString *m_dStr;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class MainMenuScaleUpTransition : public Transition
|
||||
{
|
||||
public:
|
||||
MainMenuScaleUpTransition ( void );
|
||||
virtual ~MainMenuScaleUpTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
MAINMENUSCALEUPTRANSITION_START = 0,
|
||||
MAINMENUSCALEUPTRANSITION_END = 5
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
ICoord2D m_growPos;
|
||||
ICoord2D m_growSize;
|
||||
ICoord2D m_incrementPos;
|
||||
ICoord2D m_incrementSize;
|
||||
GameWindow *m_growWin;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class MainMenuMediumScaleUpTransition : public Transition
|
||||
{
|
||||
public:
|
||||
MainMenuMediumScaleUpTransition ( void );
|
||||
virtual ~MainMenuMediumScaleUpTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
MAINMENUMEDIUMSCALEUPTRANSITION_START = 0,
|
||||
MAINMENUMEDIUMSCALEUPTRANSITION_END = 3
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
ICoord2D m_growPos;
|
||||
ICoord2D m_growSize;
|
||||
ICoord2D m_incrementSize;
|
||||
GameWindow *m_growWin;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class MainMenuSmallScaleDownTransition : public Transition
|
||||
{
|
||||
public:
|
||||
MainMenuSmallScaleDownTransition ( void );
|
||||
virtual ~MainMenuSmallScaleDownTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
MAINMENUSMALLSCALEDOWNTRANSITION_START = 0,
|
||||
MAINMENUSMALLSCALEDOWNTRANSITION_1 = 1,
|
||||
MAINMENUSMALLSCALEDOWNTRANSITION_2 = 2,
|
||||
MAINMENUSMALLSCALEDOWNTRANSITION_3 = 3,
|
||||
MAINMENUSMALLSCALEDOWNTRANSITION_4 = 4,
|
||||
MAINMENUSMALLSCALEDOWNTRANSITION_5 = 5,
|
||||
MAINMENUSMALLSCALEDOWNTRANSITION_END
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
ICoord2D m_growPos;
|
||||
ICoord2D m_growSize;
|
||||
ICoord2D m_incrementSize;
|
||||
GameWindow *m_growWin;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class ScaleUpTransition : public Transition
|
||||
{
|
||||
public:
|
||||
ScaleUpTransition ( void );
|
||||
virtual ~ScaleUpTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
SCALEUPTRANSITION_START = 0,
|
||||
SCALEUPTRANSITION_1 = 1,
|
||||
SCALEUPTRANSITION_2 = 2,
|
||||
SCALEUPTRANSITION_3 = 3,
|
||||
SCALEUPTRANSITION_4 = 4,
|
||||
SCALEUPTRANSITION_5 = 5,
|
||||
// SCALEUPTRANSITION_6 = 6,
|
||||
// SCALEUPTRANSITION_7 = 7,
|
||||
// SCALEUPTRANSITION_8 = 8,
|
||||
// SCALEUPTRANSITION_9 = 9,
|
||||
// SCALEUPTRANSITION_10 = 10,
|
||||
// SCALEUPTRANSITION_11 = 11,
|
||||
// SCALEUPTRANSITION_12 = 12,
|
||||
// SCALEUPTRANSITION_13 = 13,
|
||||
// SCALEUPTRANSITION_14 = 14,
|
||||
// SCALEUPTRANSITION_15 = 15,
|
||||
// SCALEUPTRANSITION_16 = 16,
|
||||
// SCALEUPTRANSITION_17 = 17,
|
||||
// SCALEUPTRANSITION_18 = 18,
|
||||
// SCALEUPTRANSITION_19 = 19,
|
||||
SCALEUPTRANSITION_END
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
ICoord2D m_centerPos;
|
||||
ICoord2D m_incrementSize;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class ScoreScaleUpTransition : public Transition
|
||||
{
|
||||
public:
|
||||
ScoreScaleUpTransition ( void );
|
||||
virtual ~ScoreScaleUpTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
SCORESCALEUPTRANSITION_START = 0,
|
||||
SCORESCALEUPTRANSITION_1 = 1,
|
||||
SCORESCALEUPTRANSITION_2 = 2,
|
||||
SCORESCALEUPTRANSITION_3 = 3,
|
||||
SCORESCALEUPTRANSITION_4 = 4,
|
||||
SCORESCALEUPTRANSITION_5 = 5,
|
||||
|
||||
SCORESCALEUPTRANSITION_END
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
ICoord2D m_centerPos;
|
||||
ICoord2D m_incrementSize;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
class FadeTransition : public Transition
|
||||
{
|
||||
public:
|
||||
FadeTransition ( void );
|
||||
virtual ~FadeTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
FADETRANSITION_START = 0,
|
||||
FADETRANSITION_FADE_IN_1 = 1,
|
||||
FADETRANSITION_FADE_IN_2 = 2,
|
||||
FADETRANSITION_FADE_IN_3 = 3,
|
||||
FADETRANSITION_FADE_IN_4 = 4,
|
||||
FADETRANSITION_FADE_IN_5 = 5,
|
||||
FADETRANSITION_FADE_IN_6 = 6,
|
||||
FADETRANSITION_FADE_IN_7 = 7,
|
||||
FADETRANSITION_FADE_IN_8 = 8,
|
||||
FADETRANSITION_FADE_IN_9 = 9,
|
||||
FADETRANSITION_END
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class FlashTransition : public Transition
|
||||
{
|
||||
public:
|
||||
FlashTransition ( void );
|
||||
virtual ~FlashTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
FLASHTRANSITION_START = 0,
|
||||
FLASHTRANSITION_FADE_IN_1 = 1,
|
||||
FLASHTRANSITION_FADE_IN_2 = 2,
|
||||
FLASHTRANSITION_FADE_IN_3 = 3,
|
||||
FLASHTRANSITION_FADE_TO_BACKGROUND_1 = 4,
|
||||
FLASHTRANSITION_FADE_TO_BACKGROUND_2 = 5,
|
||||
FLASHTRANSITION_FADE_TO_BACKGROUND_3 = 6,
|
||||
FLASHTRANSITION_FADE_TO_BACKGROUND_4 = 7,
|
||||
FLASHTRANSITION_END
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class ButtonFlashTransition : public Transition
|
||||
{
|
||||
public:
|
||||
ButtonFlashTransition ( void );
|
||||
virtual ~ButtonFlashTransition( void );
|
||||
|
||||
virtual void init( GameWindow *win );
|
||||
virtual void update( Int frame );
|
||||
virtual void reverse( void );
|
||||
virtual void draw( void );
|
||||
|
||||
virtual void skip( void );
|
||||
|
||||
protected:
|
||||
enum{
|
||||
BUTTONFLASHTRANSITION_START = 0,
|
||||
BUTTONFLASHTRANSITION_FADE_IN_1 = 1,
|
||||
BUTTONFLASHTRANSITION_FADE_IN_2 = 2,
|
||||
BUTTONFLASHTRANSITION_FADE_IN_3 = 3,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_BACKGROUND_1 =4,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_BACKGROUND_2 = 5,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_BACKGROUND_3 = 6,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_BACKGROUND_4 = 7,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_GRADE_IN_1 = 11,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_GRADE_IN_2 = BUTTONFLASHTRANSITION_FADE_TO_GRADE_IN_1 +1,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_GRADE_OUT_1 = BUTTONFLASHTRANSITION_FADE_TO_GRADE_IN_2 +1,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_GRADE_OUT_2 = BUTTONFLASHTRANSITION_FADE_TO_GRADE_OUT_1 +1,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_GRADE_OUT_3 = BUTTONFLASHTRANSITION_FADE_TO_GRADE_OUT_2 +1,
|
||||
BUTTONFLASHTRANSITION_FADE_TO_GRADE_OUT_4 = BUTTONFLASHTRANSITION_FADE_TO_GRADE_OUT_3 + 1,
|
||||
BUTTONFLASHTRANSITION_END, // this is the end of the sequence, we need some special defines... well put them below here
|
||||
BUTTONFLASHTRANSITION_SHOW_BACKGROUND
|
||||
};
|
||||
ICoord2D m_pos;
|
||||
ICoord2D m_size;
|
||||
Int m_drawState;
|
||||
Image *m_gradient;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class TransitionWindow
|
||||
{
|
||||
public:
|
||||
TransitionWindow( void );
|
||||
~TransitionWindow( void );
|
||||
|
||||
Bool init( void );
|
||||
void update( Int frame );
|
||||
Bool isFinished( void );
|
||||
void reverse( Int totalFrames );
|
||||
Int getTotalFrames( void );
|
||||
void skip( void );
|
||||
void draw( void );
|
||||
|
||||
// INI parsed vars
|
||||
AsciiString m_winName;
|
||||
Int m_frameDelay; // what frame number we start on
|
||||
Int m_style; // the style we'll be using
|
||||
|
||||
// standard vars
|
||||
NameKeyType m_winID;
|
||||
GameWindow *m_win;
|
||||
Transition *m_transition; // each window is allowed one trasition
|
||||
Int m_currentFrameDelay; // this will change based on if we're going forward or backwards
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class TransitionGroup
|
||||
{
|
||||
public:
|
||||
TransitionGroup( void );
|
||||
~TransitionGroup( void );
|
||||
|
||||
void init( void );
|
||||
void update( void );
|
||||
Bool isFinished( void );
|
||||
void reverse( void );
|
||||
void draw( void );
|
||||
|
||||
void skip ( void );
|
||||
AsciiString getName( void ) { return m_name; }
|
||||
void setName( AsciiString name){ m_name = name; }
|
||||
void addWindow( TransitionWindow *transWin );
|
||||
Bool isReversed( void );
|
||||
Bool isFireOnce( void ) { return m_fireOnce; }
|
||||
Bool m_fireOnce;
|
||||
private:
|
||||
typedef std::list<TransitionWindow *> TransitionWindowList;
|
||||
TransitionWindowList m_transitionWindowList;
|
||||
Int m_directionMultiplier;
|
||||
Int m_currentFrame; ///< maintain how long we've spent on this transition;
|
||||
AsciiString m_name;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class GameWindowTransitionsHandler: public SubsystemInterface
|
||||
{
|
||||
public:
|
||||
GameWindowTransitionsHandler(void);
|
||||
~GameWindowTransitionsHandler( void );
|
||||
|
||||
void init(void );
|
||||
void load(void );
|
||||
void reset( void );
|
||||
void update( void );
|
||||
void draw( void );
|
||||
Bool isFinished( void );
|
||||
const FieldParse *getFieldParse() const { return m_gameWindowTransitionsFieldParseTable; } ///< returns the parsing fields
|
||||
static const FieldParse m_gameWindowTransitionsFieldParseTable[]; ///< the parse table
|
||||
static void parseWindow( INI* ini, void *instance, void *store, const void *userData );
|
||||
|
||||
void setGroup(AsciiString groupName, Bool immidiate = FALSE); // THis will be the next group to fire off.
|
||||
void reverse( AsciiString groupName );// reverse the animations for the current group.
|
||||
void remove( AsciiString groupName, Bool skipPending = FALSE );// remove the animation from the current or pending groups.
|
||||
TransitionGroup *getNewGroup( AsciiString name );
|
||||
private:
|
||||
TransitionGroup *findGroup( AsciiString groupName );
|
||||
typedef std::list<TransitionGroup *> TransitionGroupList;
|
||||
TransitionGroupList m_transitionGroupList;
|
||||
TransitionGroup *m_currentGroup;
|
||||
TransitionGroup *m_pendingGroup;
|
||||
TransitionGroup *m_drawGroup;
|
||||
TransitionGroup *m_secondaryDrawGroup; // needed to draw the last frame of the previvous draw group once more.
|
||||
};
|
||||
|
||||
void PushButtonImageDrawThree(GameWindow *window, Int alpha );
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// INLINING ///////////////////////////////////////////////////////////////////
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// EXTERNALS //////////////////////////////////////////////////////////////////
|
||||
//-----------------------------------------------------------------------------
|
||||
extern GameWindowTransitionsHandler *TheTransitionHandler;
|
||||
#endif // __GAME_WINDOW_TRANSITIONS_H_
|
||||
|
Reference in a new issue