mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Requires GameDir >= r2316. For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=tree&th=23044&goto=345324&#msg_345324 git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8202 3b4a5df2-a311-0410-b5c6-a8a6f20db521
234 lines
7.4 KiB
C++
234 lines
7.4 KiB
C++
#ifndef __MILITIAINTERFACE_H
|
|
#define __MILITIAINTERFACE_H
|
|
|
|
/**
|
|
* @file
|
|
* @author Flugente (bears-pit.com)
|
|
*/
|
|
|
|
#include "BaseTable.h"
|
|
#include "MilitiaIndividual.h"
|
|
|
|
extern UINT32 gusCurrentMilitia;
|
|
|
|
// the data of an individual militia is displayed on its own widget. There are several parts:
|
|
// - face, name, traits and gun are displayed on top. This data is also displayed for each militia in a list
|
|
// - Below that there is a tabbox with 3 entries:
|
|
// - On the service record, we see their current body, stats & health and their history - which battles they took part in, and where and when they were recruited
|
|
// Clicking on a history item links us to to campaign history. The history items are in a table.
|
|
// - The skilltree is a separate tab. Here we can choose traits and promote militia, provided they have sufficient experience (currently not used)
|
|
// - The inventory is a separate tab as well.
|
|
|
|
class MilitiaServiceRecordTable : public BaseTable
|
|
{
|
|
public:
|
|
MilitiaServiceRecordTable( );
|
|
|
|
/*
|
|
* Initialise variables. Called after each creation which allows moving a dropdown
|
|
*/
|
|
virtual void Init( UINT16 sX, UINT16 sY, UINT16 sX_End, UINT16 sY_End );
|
|
|
|
/*
|
|
* Create a Dropdown with upper left coordinates
|
|
*/
|
|
virtual void Create( UINT16 sX, UINT16 sY, UINT16 sX_End, UINT16 sY_End );
|
|
|
|
/*
|
|
* Destroy Dropdown, for example once a website isn't displayed anymore
|
|
*/
|
|
virtual void Destroy( );
|
|
|
|
/*
|
|
* Display DropDownBase. Use this when refreshing
|
|
*/
|
|
virtual void Display( );
|
|
|
|
/*
|
|
* Sometimes a refresh inside the class isn't enough - best example is closing the dropdown area, after which the previous background cannot be restored by this class.
|
|
* In that case, the background and this class has to be redrawn.
|
|
* This function is called internally whenever such a refresh is necessary.
|
|
* It has to be defined in derived classes and should notify your dialogues to redraw at appropriate times
|
|
*
|
|
* This function has to be implemented!
|
|
*/
|
|
virtual void SetRefresh( );
|
|
|
|
void SetId( UINT32 usId ) { mMilitiaId = usId; }
|
|
|
|
private:
|
|
// declare but don't define
|
|
MilitiaServiceRecordTable( MilitiaServiceRecordTable const& );
|
|
void operator=(MilitiaServiceRecordTable const&);
|
|
|
|
private:
|
|
UINT32 mMilitiaId; // the id of the militia whose data we display
|
|
};
|
|
|
|
class MilitiaPersonalDataTable : public TestPanel
|
|
{
|
|
public:
|
|
MilitiaPersonalDataTable( );
|
|
|
|
/*
|
|
* Initialise variables. Called after each creation which allows moving a dropdown
|
|
*/
|
|
virtual void Init( UINT16 sX, UINT16 sY, UINT16 sX_End, UINT16 sY_End );
|
|
|
|
/*
|
|
* Create a Dropdown with upper left coordinates
|
|
*/
|
|
virtual void Create( UINT16 sX, UINT16 sY, UINT16 sX_End, UINT16 sY_End );
|
|
|
|
/*
|
|
* Destroy Dropdown, for example once a website isn't displayed anymore
|
|
*/
|
|
virtual void Destroy( );
|
|
|
|
/*
|
|
* Display DropDownBase. Use this when refreshing
|
|
*/
|
|
virtual void Display( );
|
|
|
|
/*
|
|
* Sometimes a refresh inside the class isn't enough - best example is closing the dropdown area, after which the previous background cannot be restored by this class.
|
|
* In that case, the background and this class has to be redrawn.
|
|
* This function is called internally whenever such a refresh is necessary.
|
|
* It has to be defined in derived classes and should notify your dialogues to redraw at appropriate times
|
|
*
|
|
* This function has to be implemented!
|
|
*/
|
|
virtual void SetRefresh( );
|
|
|
|
virtual void DestroyMouseRegions( );
|
|
|
|
void SetId( UINT32 usId ) { mMilitiaId = usId; }
|
|
|
|
private:
|
|
// declare but don't define
|
|
MilitiaPersonalDataTable( MilitiaPersonalDataTable const& );
|
|
void operator=(MilitiaPersonalDataTable const&);
|
|
|
|
private:
|
|
UINT32 mMilitiaId; // the id of the militia whose data we display
|
|
|
|
INT32 mButtonFire;
|
|
BOOLEAN mButtonFireCreated;
|
|
};
|
|
|
|
class MilitiaPersonalInventoryTable : public TestPanel
|
|
{
|
|
public:
|
|
MilitiaPersonalInventoryTable( );
|
|
|
|
/*
|
|
* Initialise variables. Called after each creation which allows moving a dropdown
|
|
*/
|
|
virtual void Init( UINT16 sX, UINT16 sY, UINT16 sX_End, UINT16 sY_End );
|
|
|
|
/*
|
|
* Create a Dropdown with upper left coordinates
|
|
*/
|
|
virtual void Create( UINT16 sX, UINT16 sY, UINT16 sX_End, UINT16 sY_End );
|
|
|
|
/*
|
|
* Destroy Dropdown, for example once a website isn't displayed anymore
|
|
*/
|
|
virtual void Destroy( );
|
|
|
|
/*
|
|
* Display DropDownBase. Use this when refreshing
|
|
*/
|
|
virtual void Display( );
|
|
|
|
/*
|
|
* Sometimes a refresh inside the class isn't enough - best example is closing the dropdown area, after which the previous background cannot be restored by this class.
|
|
* In that case, the background and this class has to be redrawn.
|
|
* This function is called internally whenever such a refresh is necessary.
|
|
* It has to be defined in derived classes and should notify your dialogues to redraw at appropriate times
|
|
*
|
|
* This function has to be implemented!
|
|
*/
|
|
virtual void SetRefresh( );
|
|
|
|
virtual void DestroyMouseRegions( );
|
|
|
|
void SetId( UINT32 usId ) { mMilitiaId = usId; }
|
|
|
|
private:
|
|
// declare but don't define
|
|
MilitiaPersonalInventoryTable( MilitiaPersonalInventoryTable const& );
|
|
void operator=(MilitiaPersonalInventoryTable const&);
|
|
|
|
private:
|
|
UINT32 mMilitiaId; // the id of the militia whose data we display
|
|
};
|
|
|
|
class MilitiaInidividualMainWidget : public TestPanel
|
|
{
|
|
public:
|
|
MilitiaInidividualMainWidget( );
|
|
|
|
/*
|
|
* Initialise variables. Called after each creation which allows moving a dropdown
|
|
*/
|
|
virtual void Init( UINT16 sX, UINT16 sY, UINT16 sX_End, UINT16 sY_End );
|
|
|
|
/*
|
|
* Create a Dropdown with upper left coordinates
|
|
*/
|
|
virtual void Create( UINT16 sX, UINT16 sY, UINT16 sX_End, UINT16 sY_End );
|
|
|
|
/*
|
|
* Destroy Dropdown, for example once a website isn't displayed anymore
|
|
*/
|
|
virtual void Destroy( );
|
|
|
|
/*
|
|
* Display DropDownBase. Use this when refreshing
|
|
*/
|
|
virtual void Display( );
|
|
|
|
/*
|
|
* Sometimes a refresh inside the class isn't enough - best example is closing the dropdown area, after which the previous background cannot be restored by this class.
|
|
* In that case, the background and this class has to be redrawn.
|
|
* This function is called internally whenever such a refresh is necessary.
|
|
* It has to be defined in derived classes and should notify your dialogues to redraw at appropriate times
|
|
*
|
|
* This function has to be implemented!
|
|
*/
|
|
virtual void SetRefresh( );
|
|
|
|
virtual void DestroyMouseRegions( );
|
|
|
|
virtual void SetMouseRegionActive( BOOLEAN aVal ) { TabBoxTemplate<1>::getInstance( ).SetMouseRegionActive( aVal ); }
|
|
|
|
void SetId( UINT32 usId ) { mMilitiaId = usId; gusCurrentMilitia = usId; mPersonalData.SetId( usId ); mServiceRecord.SetId( usId ); mItemsTable.SetId( usId ); }
|
|
|
|
static void CloseButtonCallback( GUI_BUTTON * btn, INT32 iReason );
|
|
|
|
private:
|
|
// declare but don't define
|
|
MilitiaInidividualMainWidget( MilitiaInidividualMainWidget const& );
|
|
void operator=(MilitiaInidividualMainWidget const&);
|
|
|
|
private:
|
|
UINT32 mMilitiaId; // the id of the militia whose data we display
|
|
|
|
TestPanel mPersonalDataPanel;
|
|
MilitiaPersonalDataTable mPersonalData;
|
|
TestPanel mServiceRecordPanel;
|
|
MilitiaServiceRecordTable mServiceRecord;
|
|
TestPanel mItemPanel;
|
|
MilitiaPersonalInventoryTable mItemsTable;
|
|
|
|
// close buttons
|
|
BOOLEAN mCloseButtonDefined;
|
|
INT32 mCloseButton;
|
|
UINT32 mCloseImage;
|
|
};
|
|
|
|
extern MilitiaInidividualMainWidget militiaindividualmainwidget;
|
|
|
|
#endif
|