2001-03-26 23:29:09 +02:00
|
|
|
/*******************/
|
|
|
|
/*** Layer Actor ***/
|
|
|
|
/*******************/
|
2001-03-26 17:22:59 +02:00
|
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include <Vector3.h>
|
|
|
|
#include <gl\gl.h>
|
|
|
|
#include <gl\glu.h>
|
|
|
|
#include "GLEnabledView.h"
|
|
|
|
|
|
|
|
#include "MapEdit.h"
|
|
|
|
#include "MapEditDoc.h"
|
|
|
|
#include "MapEditView.h"
|
|
|
|
#include "MainFrm.h"
|
|
|
|
|
|
|
|
#include "Core.h"
|
|
|
|
#include "LayerThing.h"
|
2001-03-26 23:29:09 +02:00
|
|
|
#include "LayerActor.h"
|
2001-03-26 17:22:59 +02:00
|
|
|
#include "Utils.h"
|
|
|
|
#include "Export.h"
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
/*****************************************************************************/
|
|
|
|
/*****************************************************************************/
|
2001-03-29 19:59:01 +02:00
|
|
|
CLayerActor::CLayerActor(sLayerDef &Def)
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
2001-03-29 19:59:01 +02:00
|
|
|
InitLayer(Def);
|
2001-03-26 17:22:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
2001-03-29 19:59:01 +02:00
|
|
|
void CLayerActor::InitLayer(sLayerDef &Def)
|
|
|
|
{
|
2001-03-31 17:40:20 +02:00
|
|
|
ThingBank=new CElemBank(-1,-1,false,CElem::CentreModeLR | CElem::CentreModeB);
|
2001-03-29 19:59:01 +02:00
|
|
|
CLayerThing::InitLayer(Def);
|
|
|
|
LoadThingScript(theApp.GetConfigStr("LayerScript","ActorScript"));
|
|
|
|
}
|
2001-03-26 17:22:59 +02:00
|
|
|
|
|
|
|
/*****************************************************************************/
|
2001-03-29 19:59:01 +02:00
|
|
|
void CLayerActor::InitSubView(CCore *Core)
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
2001-03-29 19:59:01 +02:00
|
|
|
/*** Gui *********************************************************************/
|
|
|
|
/*****************************************************************************/
|
|
|
|
void CLayerActor::GUIInit(CCore *Core)
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
2001-04-07 23:05:33 +02:00
|
|
|
GUIActor.DisableCallback(true);
|
|
|
|
Core->GUIAdd(GUIThing,IDD_LAYER_THING);
|
|
|
|
Core->GUIAdd(GUIThingPos,IDD_LAYER_THING_POS);
|
|
|
|
Core->GUIAdd(GUIActor,IDD_LAYER_ACTOR);
|
|
|
|
GUIActor.DisableCallback(false);
|
2001-03-26 17:22:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
2001-03-29 19:59:01 +02:00
|
|
|
void CLayerActor::GUIKill(CCore *Core)
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
2001-04-07 23:05:33 +02:00
|
|
|
Core->GUIRemove(GUIThing,IDD_LAYER_THING);
|
|
|
|
Core->GUIRemove(GUIThingPos,IDD_LAYER_THING_POS);
|
|
|
|
Core->GUIRemove(GUIActor,IDD_LAYER_ACTOR);
|
2001-03-26 17:22:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
2001-03-29 19:59:01 +02:00
|
|
|
void CLayerActor::GUIUpdate(CCore *Core)
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
2001-03-29 19:59:01 +02:00
|
|
|
int i,ListSize;
|
2001-04-07 23:05:33 +02:00
|
|
|
CComboBox &List=GUIThing.m_DefList;
|
2001-03-26 17:22:59 +02:00
|
|
|
|
2001-03-29 19:59:01 +02:00
|
|
|
// Setup Def Actor List
|
|
|
|
ListSize=DefList.size();
|
|
|
|
List.ResetContent();
|
|
|
|
for (i=0; i<ListSize; i++)
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
2001-03-29 19:59:01 +02:00
|
|
|
List.AddString(DefList[i].Name);
|
2001-03-26 17:22:59 +02:00
|
|
|
}
|
2001-03-29 19:59:01 +02:00
|
|
|
List.SetCurSel(CurrentDefThing);
|
|
|
|
|
|
|
|
GUIThingUpdate();
|
2001-03-26 17:22:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
2001-03-29 19:59:01 +02:00
|
|
|
void CLayerActor::GUIThingDefClear()
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
2001-04-07 23:05:33 +02:00
|
|
|
CComboBox &List=GUIThing.m_DefList;
|
2001-03-29 19:59:01 +02:00
|
|
|
CurrentDefThing=-1;
|
|
|
|
List.SetCurSel(CurrentDefThing);
|
2001-03-26 17:22:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
2001-03-31 17:40:20 +02:00
|
|
|
void CLayerActor::GUIThingUpdate(bool OnlySel)
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
2001-04-07 23:05:33 +02:00
|
|
|
GUIThingUpdateList(GUIThing.m_List,false);
|
2001-03-29 19:59:01 +02:00
|
|
|
// Params
|
2001-04-07 23:05:33 +02:00
|
|
|
GUIActor.DisableCallback(true);
|
2001-03-29 19:59:01 +02:00
|
|
|
if (CurrentThing!=-1)
|
|
|
|
{
|
|
|
|
sLayerThing &ThisThing=ThingList[CurrentThing];
|
2001-04-07 23:05:33 +02:00
|
|
|
GUIActor.SetVal(GUIActor.m_Speed,ThisThing.Data.Speed);
|
|
|
|
GUIActor.SetVal(GUIActor.m_TurnRate,ThisThing.Data.TurnRate);
|
|
|
|
GUIActor.SetVal(GUIActor.m_Health,ThisThing.Data.Health);
|
|
|
|
GUIActor.SetVal(GUIActor.m_Attack,ThisThing.Data.AttackStrength);
|
|
|
|
GUIActor.m_Collision.SetCheck(ThisThing.Data.CollisionFlag);
|
|
|
|
GUIActor.m_Player.SetCheck(ThisThing.Data.PlayerFlag);
|
2001-03-29 19:59:01 +02:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2001-04-07 23:05:33 +02:00
|
|
|
GUIActor.m_Speed.SetWindowText("");
|
|
|
|
GUIActor.m_TurnRate.SetWindowText("");
|
|
|
|
GUIActor.m_Health.SetWindowText("");
|
|
|
|
GUIActor.m_Attack.SetWindowText("");
|
|
|
|
GUIActor.m_Collision.SetCheck(false);
|
|
|
|
GUIActor.m_Player.SetCheck(false);
|
2001-03-29 19:59:01 +02:00
|
|
|
}
|
2001-04-07 23:05:33 +02:00
|
|
|
GUIActor.DisableCallback(false);
|
2001-03-26 17:22:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
2001-03-31 17:40:20 +02:00
|
|
|
void CLayerActor::GUIThingPointUpdate(bool OnlySel)
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
2001-04-07 23:05:33 +02:00
|
|
|
GUIThingPointUpdateList(GUIThingPos.m_List,OnlySel);
|
2001-03-26 17:22:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
2001-03-26 23:29:09 +02:00
|
|
|
void CLayerActor::GUIChanged(CCore *Core)
|
2001-03-26 17:22:59 +02:00
|
|
|
{
|
2001-03-29 19:59:01 +02:00
|
|
|
if (CurrentThing!=-1)
|
|
|
|
{
|
|
|
|
sLayerThing &ThisThing=ThingList[CurrentThing];
|
2001-04-07 23:05:33 +02:00
|
|
|
ThisThing.Data.Speed=GUIActor.GetVal(GUIActor.m_Speed);
|
|
|
|
ThisThing.Data.TurnRate=GUIActor.GetVal(GUIActor.m_TurnRate);
|
|
|
|
ThisThing.Data.Health=GUIActor.GetVal(GUIActor.m_Health);
|
|
|
|
ThisThing.Data.AttackStrength=GUIActor.GetVal(GUIActor.m_Attack);
|
|
|
|
ThisThing.Data.CollisionFlag=GUIActor.m_Collision.GetCheck()!=0;
|
|
|
|
ThisThing.Data.PlayerFlag=GUIActor.m_Player.GetCheck()!=0;
|
2001-03-29 19:59:01 +02:00
|
|
|
}
|
|
|
|
|
2001-03-26 17:22:59 +02:00
|
|
|
}
|