parent
43c39f60cd
commit
df5edc703c
|
@ -444,6 +444,7 @@ enum EventType
|
|||
EVENT_OBJECT_TERRAFORM = 1201,
|
||||
EVENT_OBJECT_FIRE = 1202,
|
||||
EVENT_OBJECT_FIREANT = 1203,
|
||||
EVENT_OBJECT_SPIDEREXPLO= 1204,
|
||||
EVENT_OBJECT_RECOVER = 1220,
|
||||
EVENT_OBJECT_BEGSHIELD = 1221,
|
||||
EVENT_OBJECT_ENDSHIELD = 1222,
|
||||
|
|
|
@ -352,6 +352,7 @@ void InitializeRestext()
|
|||
stringsEvent[EVENT_OBJECT_SEARCH] = "Sniff (\\key action;)";
|
||||
stringsEvent[EVENT_OBJECT_TERRAFORM] = "Thump (\\key action;)";
|
||||
stringsEvent[EVENT_OBJECT_FIRE] = "Shoot (\\key action;)";
|
||||
stringsEvent[EVENT_OBJECT_SPIDEREXPLO] = "Explode (\\key action;)";
|
||||
stringsEvent[EVENT_OBJECT_RECOVER] = "Recycle (\\key action;)";
|
||||
stringsEvent[EVENT_OBJECT_BEGSHIELD] = "Extend shield (\\key action;)";
|
||||
stringsEvent[EVENT_OBJECT_ENDSHIELD] = "Withdraw shield (\\key action;)";
|
||||
|
|
|
@ -602,6 +602,11 @@ bool CBrain::EventProcess(const Event &event)
|
|||
//? err = StartTaskFireAnt();
|
||||
}
|
||||
|
||||
if ( action == EVENT_OBJECT_SPIDEREXPLO && m_primaryTask == 0 )
|
||||
{
|
||||
err = StartTaskSpiderExplo();
|
||||
}
|
||||
|
||||
if ( action == EVENT_OBJECT_PEN0 ) // up
|
||||
{
|
||||
err = StartTaskPen(false, m_object->GetTraceColor());
|
||||
|
@ -1077,6 +1082,24 @@ Error CBrain::StartTaskFire(float delay)
|
|||
return err;
|
||||
}
|
||||
|
||||
// Explodes spider.
|
||||
|
||||
Error CBrain::StartTaskSpiderExplo()
|
||||
{
|
||||
Error err;
|
||||
|
||||
if ( m_primaryTask != 0 )
|
||||
{
|
||||
delete m_primaryTask; // stops the current task
|
||||
m_primaryTask = 0;
|
||||
}
|
||||
|
||||
m_primaryTask = new CTaskManager(m_object);
|
||||
err = m_primaryTask->StartTaskSpiderExplo();
|
||||
UpdateInterface();
|
||||
return err;
|
||||
}
|
||||
|
||||
// Shoots to the ant.
|
||||
|
||||
Error CBrain::StartTaskFireAnt(Math::Vector impact)
|
||||
|
@ -1580,6 +1603,15 @@ bool CBrain::CreateInterface(bool bSelect)
|
|||
//? pw->CreateButton(pos, dim, 41, EVENT_OBJECT_LIMIT);
|
||||
}
|
||||
|
||||
if ( type == OBJECT_SPIDER )
|
||||
{
|
||||
pos.x = ox+sx*7.7f;
|
||||
pos.y = oy+sy*0.5f;
|
||||
pb = pw->CreateButton(pos, dim, 42, EVENT_OBJECT_SPIDEREXPLO);
|
||||
pb->SetImmediat(true);
|
||||
DefaultEnter(pw, EVENT_OBJECT_SPIDEREXPLO);
|
||||
}
|
||||
|
||||
if ( type == OBJECT_MOBILEdr &&
|
||||
m_object->GetManual() ) // scribbler in manual mode?
|
||||
{
|
||||
|
@ -2136,37 +2168,38 @@ void CBrain::UpdateInterface()
|
|||
|
||||
bEnable = ( m_primaryTask == 0 && m_program == -1 );
|
||||
|
||||
EnableInterface(pw, EVENT_OBJECT_PROGEDIT, (m_primaryTask == 0 && !m_bTraceRecord));
|
||||
EnableInterface(pw, EVENT_OBJECT_PROGLIST, bEnable && !m_bTraceRecord);
|
||||
EnableInterface(pw, EVENT_OBJECT_LEFT, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_RIGHT, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_UP, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_DOWN, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_HTAKE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_MTAKE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_MBACK, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_MPOWER, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_MFRONT, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_GFLAT, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_FCREATE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_FDELETE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_SEARCH, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_TERRAFORM, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_RECOVER, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_FIRE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_RESET, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PROGEDIT, (m_primaryTask == 0 && !m_bTraceRecord));
|
||||
EnableInterface(pw, EVENT_OBJECT_PROGLIST, bEnable && !m_bTraceRecord);
|
||||
EnableInterface(pw, EVENT_OBJECT_LEFT, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_RIGHT, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_UP, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_DOWN, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_HTAKE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_MTAKE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_MBACK, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_MPOWER, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_MFRONT, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_GFLAT, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_FCREATE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_FDELETE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_SEARCH, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_TERRAFORM, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_RECOVER, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_FIRE, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_SPIDEREXPLO, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_RESET, bEnable);
|
||||
#if _TEEN
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN0, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN1, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN2, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN3, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN4, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN5, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN6, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN7, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN8, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_REC, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_STOP, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN0, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN1, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN2, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN3, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN4, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN5, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN6, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN7, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_PEN8, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_REC, bEnable);
|
||||
EnableInterface(pw, EVENT_OBJECT_STOP, bEnable);
|
||||
#endif
|
||||
|
||||
if ( type == OBJECT_HUMAN ) // builder?
|
||||
|
|
|
@ -133,6 +133,7 @@ public:
|
|||
Error StartTaskShield(TaskShieldMode mode);
|
||||
Error StartTaskFire(float delay);
|
||||
Error StartTaskFireAnt(Math::Vector impact);
|
||||
Error StartTaskSpiderExplo();
|
||||
Error StartTaskGunGoal(float dirV, float dirH);
|
||||
Error StartTaskReset(Math::Vector goal, Math::Vector angle);
|
||||
|
||||
|
|
Loading…
Reference in New Issue