mirror of
https://github.com/kevinbentley/Descent3.git
synced 2025-01-22 19:55:23 +00:00
a4ab78192c
Join the license header with historical comments using a separator so IDEs can correctly parse the initial header. Also use .gitattributes to ensure all files are LF.
1417 lines
39 KiB
C++
1417 lines
39 KiB
C++
/*
|
|
* Descent 3
|
|
* Copyright (C) 2024 Parallax Software
|
|
*
|
|
* 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/>.
|
|
|
|
--- HISTORICAL COMMENTS FOLLOW ---
|
|
|
|
* $Logfile: /DescentIII/Main/editor/AnimStatesDialog.cpp $
|
|
* $Revision: 1.1.1.1 $
|
|
* $Date: 2003-08-26 03:57:37 $
|
|
* $Author: kevinb $
|
|
*
|
|
* AnimStatesDialog.cpp : implementation file
|
|
*
|
|
* $Log: not supported by cvs2svn $
|
|
*
|
|
* 17 10/22/99 6:04p Jeff
|
|
* fixed bugs and compiler errors resulting from mac code merge
|
|
*
|
|
* 16 9/21/99 5:06p Chris
|
|
* Faster animation dialog updates - an editor ONLY change
|
|
*
|
|
* 15 6/15/98 4:00p Jason
|
|
* replaced monochromatic polymodel lighting with rgb lighting
|
|
*
|
|
* 14 5/03/98 5:38p Chris
|
|
* Added sounds to anim page
|
|
*
|
|
* 13 4/16/98 2:56p Chris
|
|
* Added birth Animation
|
|
*
|
|
* 12 4/13/98 2:20p Chris
|
|
* IDLe works (kindof)
|
|
*
|
|
* 11 4/02/98 3:54p Jason
|
|
* first pass in getting polymodel paging to work
|
|
*
|
|
* 10 2/16/98 2:49p Chris
|
|
* Made the MAX_SUBOBJECTS determine the number of normalized_time values
|
|
* to be processed. No longer a 'literal' problem.
|
|
*
|
|
* 9 2/16/98 2:47a Chris
|
|
* Massive improvements to the animation system and the AI
|
|
*
|
|
* 8 12/19/97 11:25a Samir
|
|
* g3_StartFrame and g3_EndFrame replaced by EditorStartFrame and
|
|
* EditorEndFrame
|
|
*
|
|
* 7 12/17/97 3:17p Jason
|
|
* fixed potential fabs/abs bug
|
|
*
|
|
* 6 10/05/97 5:30a Chris
|
|
* Added more support for TIMED animations
|
|
*
|
|
* 5 9/08/97 11:51a Chris
|
|
* Added support for entering seconds-per-cycle animation information
|
|
*
|
|
* 4 8/08/97 11:45a Matt
|
|
* Made anim states dialog keep local copy of anim array. The caller then
|
|
* copies the data to his own array if the user exits from the dialog via
|
|
* OK.
|
|
*
|
|
* 3 8/06/97 1:35p Matt
|
|
* Changes for new generic object_info struct which replace robot-specific
|
|
* structure
|
|
*
|
|
* 2 7/24/97 6:35p Matt
|
|
* Created symbolic constant for default zoom, and used it every place
|
|
* that specifies zoom
|
|
*
|
|
* $NoKeywords: $
|
|
*/
|
|
|
|
#include "stdafx.h"
|
|
#include "editor.h"
|
|
#include "AnimStatesDialog.h"
|
|
#include "polymodel.h"
|
|
#include "gr.h"
|
|
#include "soundpage.h"
|
|
#include "soundload.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CAnimStatesDialog dialog
|
|
|
|
|
|
CAnimStatesDialog::CAnimStatesDialog(int render_handle,anim_elem *anim_info,CWnd* pParent /*=NULL*/)
|
|
: CDialog(CAnimStatesDialog::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CAnimStatesDialog)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_render_handle = render_handle;
|
|
|
|
for (int i=0;i<NUM_MOVEMENT_CLASSES;i++)
|
|
for (int j=0;j<NUM_ANIMS_PER_CLASS;j++)
|
|
{
|
|
//m_anim[i][j] = anim_info[i][j];
|
|
m_anim[i].elem[j] = anim_info[i].elem[j];
|
|
}
|
|
|
|
m_setup_sound_dialogs = false;
|
|
}
|
|
|
|
|
|
void CAnimStatesDialog::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CAnimStatesDialog)
|
|
// NOTE: the ClassWizard will add DDX and DDV calls here
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CAnimStatesDialog, CDialog)
|
|
//{{AFX_MSG_MAP(CAnimStatesDialog)
|
|
ON_BN_CLICKED(IDC_ALERT_CHECK, OnAlertCheck)
|
|
ON_BN_CLICKED(IDC_DEATH_CHECK, OnDeathCheck)
|
|
ON_BN_CLICKED(IDC_FLINCH_CHECK, OnFlinchCheck)
|
|
ON_BN_CLICKED(IDC_GOTO_FLYING_CHECK, OnGotoFlyingCheck)
|
|
ON_BN_CLICKED(IDC_GOTO_JUMPING_CHECK, OnGotoJumpingCheck)
|
|
ON_BN_CLICKED(IDC_GOTO_ROLLING_CHECK, OnGotoRollingCheck)
|
|
ON_BN_CLICKED(IDC_GOTO_STANDING_CHECK, OnGotoStandingCheck)
|
|
ON_BN_CLICKED(IDC_GOTO_WALKING_CHECK, OnGotoWalkingCheck)
|
|
ON_BN_CLICKED(IDC_IDLE_CHECK, OnIdleCheck)
|
|
ON_BN_CLICKED(IDC_MELEE1_CHECK, OnMelee1Check)
|
|
ON_BN_CLICKED(IDC_MELEE1_RECOIL_CHECK, OnMelee1RecoilCheck)
|
|
ON_BN_CLICKED(IDC_MELEE2_CHECK, OnMelee2Check)
|
|
ON_BN_CLICKED(IDC_MELEE2_RECOIL_CHECK, OnMelee2RecoilCheck)
|
|
ON_BN_CLICKED(IDC_MISSILE1_CHECK, OnMissile1Check)
|
|
ON_BN_CLICKED(IDC_MISSILE1_RECOIL_CHECK, OnMissile1RecoilCheck)
|
|
ON_BN_CLICKED(IDC_MISSILE2_CHECK, OnMissile2Check)
|
|
ON_BN_CLICKED(IDC_MISSILE2_RECOIL_CHECK, OnMissile2RecoilCheck)
|
|
ON_BN_CLICKED(IDC_QUIRK_CHECK, OnQuirkCheck)
|
|
ON_BN_CLICKED(IDC_SPECIAL1_CHECK, OnSpecial1Check)
|
|
ON_BN_CLICKED(IDC_SPECIAL2_CHECK, OnSpecial2Check)
|
|
ON_BN_CLICKED(IDC_SPECIAL3_CHECK, OnSpecial3Check)
|
|
ON_BN_CLICKED(IDC_SPECIAL4_CHECK, OnSpecial4Check)
|
|
ON_BN_CLICKED(IDC_SPECIAL5_CHECK, OnSpecial5Check)
|
|
ON_BN_CLICKED(IDC_TAUNT_CHECK, OnTauntCheck)
|
|
ON_CBN_SELENDOK(IDC_CURRENT_ANIMATION_PULLDOWN, OnSelendokCurrentAnimationPulldown)
|
|
ON_CBN_SELENDOK(IDC_CURRENT_STATE_PULLDOWN, OnSelendokCurrentStatePulldown)
|
|
ON_WM_TIMER()
|
|
ON_EN_KILLFOCUS(IDC_ALERT_FROM_EDIT, OnKillfocusAlertFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_ALERT_TO_EDIT, OnKillfocusAlertToEdit)
|
|
ON_EN_KILLFOCUS(IDC_DEATH_FROM_EDIT, OnKillfocusDeathFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_DEATH_TO_EDIT, OnKillfocusDeathToEdit)
|
|
ON_EN_KILLFOCUS(IDC_FLINCH_FROM_EDIT, OnKillfocusFlinchFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_FLINCH_TO_EDIT, OnKillfocusFlinchToEdit)
|
|
ON_EN_KILLFOCUS(IDC_FLYING_FROM_EDIT, OnKillfocusFlyingFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_FLYING_TO_EDIT, OnKillfocusFlyingToEdit)
|
|
ON_EN_KILLFOCUS(IDC_IDLE_FROM_EDIT, OnKillfocusIdleFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_IDLE_TO_EDIT, OnKillfocusIdleToEdit)
|
|
ON_EN_KILLFOCUS(IDC_JUMPING_FROM_EDIT, OnKillfocusJumpingFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_JUMPING_TO_EDIT, OnKillfocusJumpingToEdit)
|
|
ON_EN_KILLFOCUS(IDC_MELEE1_FROM_EDIT, OnKillfocusMelee1FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_MELEE1_TO_EDIT, OnKillfocusMelee1ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_MELEE2_FROM_EDIT, OnKillfocusMelee2FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_MISSILE1_FROM_EDIT, OnKillfocusMissile1FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_MISSILE1_TO_EDIT, OnKillfocusMissile1ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_MISSILE2_FROM_EDIT, OnKillfocusMissile2FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_MISSILE2_TO_EDIT, OnKillfocusMissile2ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_MRECOIL1_TO_EDIT, OnKillfocusMrecoil1ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_MRECOIL1_FROM_EDIT, OnKillfocusMrecoil1FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_MRECOIL2_FROM_EDIT, OnKillfocusMrecoil2FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_MRECOIL2_TO_EDIT, OnKillfocusMrecoil2ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_QUIRK_FROM_EDIT, OnKillfocusQuirkFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_QUIRK_TO_EDIT, OnKillfocusQuirkToEdit)
|
|
ON_EN_KILLFOCUS(IDC_RECOIL1_FROM_EDIT, OnKillfocusRecoil1FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_RECOIL1_TO_EDIT, OnKillfocusRecoil1ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_RECOIL2_FROM_EDIT, OnKillfocusRecoil2FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_RECOIL2_TO_EDIT, OnKillfocusRecoil2ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_ROLLING_FROM_EDIT, OnKillfocusRollingFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_ROLLING_TO_EDIT, OnKillfocusRollingToEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL1_FROM_EDIT, OnKillfocusSpecial1FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL1_TO_EDIT, OnKillfocusSpecial1ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL2_FROM_EDIT, OnKillfocusSpecial2FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL2_TO_EDIT, OnKillfocusSpecial2ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL3_FROM_EDIT, OnKillfocusSpecial3FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL3_TO_EDIT, OnKillfocusSpecial3ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL4_FROM_EDIT, OnKillfocusSpecial4FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL4_TO_EDIT, OnKillfocusSpecial4ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL5_FROM_EDIT, OnKillfocusSpecial5FromEdit)
|
|
ON_EN_KILLFOCUS(IDC_SPECIAL5_TO_EDIT, OnKillfocusSpecial5ToEdit)
|
|
ON_EN_KILLFOCUS(IDC_STANDING_FROM_EDIT, OnKillfocusStandingFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_STANDING_TO_EDIT, OnKillfocusStandingToEdit)
|
|
ON_EN_KILLFOCUS(IDC_TAUNT_FROM_EDIT, OnKillfocusTauntFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_TAUNT_TO_EDIT, OnKillfocusTauntToEdit)
|
|
ON_EN_KILLFOCUS(IDC_WALKING_FROM_EDIT, OnKillfocusWalkingFromEdit)
|
|
ON_EN_KILLFOCUS(IDC_WALKING_TO_EDIT, OnKillfocusWalkingToEdit)
|
|
ON_EN_KILLFOCUS(IDC_MELEE2_TO_EDIT, OnKillfocusMelee2ToEdit)
|
|
ON_BN_CLICKED(IDC_RESET_ANIM_ZERO, OnResetAnimZero)
|
|
ON_BN_CLICKED(IDC_ROT_LEFT, OnRotLeft)
|
|
ON_BN_CLICKED(IDC_ROT_RIGHT, OnRotRight)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT1, OnKillfocusSecPerCycleEdit1)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT2, OnKillfocusSecPerCycleEdit2)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT3, OnKillfocusSecPerCycleEdit3)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT4, OnKillfocusSecPerCycleEdit4)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT5, OnKillfocusSecPerCycleEdit5)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT6, OnKillfocusSecPerCycleEdit6)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT7, OnKillfocusSecPerCycleEdit7)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT8, OnKillfocusSecPerCycleEdit8)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT9, OnKillfocusSecPerCycleEdit9)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT10, OnKillfocusSecPerCycleEdit10)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT11, OnKillfocusSecPerCycleEdit11)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT12, OnKillfocusSecPerCycleEdit12)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT13, OnKillfocusSecPerCycleEdit13)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT14, OnKillfocusSecPerCycleEdit14)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT15, OnKillfocusSecPerCycleEdit15)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT16, OnKillfocusSecPerCycleEdit16)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT17, OnKillfocusSecPerCycleEdit17)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT18, OnKillfocusSecPerCycleEdit18)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT19, OnKillfocusSecPerCycleEdit19)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT20, OnKillfocusSecPerCycleEdit20)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT21, OnKillfocusSecPerCycleEdit21)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT22, OnKillfocusSecPerCycleEdit22)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT23, OnKillfocusSecPerCycleEdit23)
|
|
ON_EN_KILLFOCUS(IDC_SEC_PER_CYCLE_EDIT24, OnKillfocusSecPerCycleEdit24)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND0_PULLDOWN, OnSelendokAnimSound0Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND1_PULLDOWN, OnSelendokAnimSound1Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND2_PULLDOWN, OnSelendokAnimSound2Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND10_PULLDOWN, OnSelendokAnimSound10Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND11_PULLDOWN, OnSelendokAnimSound11Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND12_PULLDOWN, OnSelendokAnimSound12Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND13_PULLDOWN, OnSelendokAnimSound13Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND14_PULLDOWN, OnSelendokAnimSound14Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND15_PULLDOWN, OnSelendokAnimSound15Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND16_PULLDOWN, OnSelendokAnimSound16Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND17_PULLDOWN, OnSelendokAnimSound17Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND18_PULLDOWN, OnSelendokAnimSound18Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND19_PULLDOWN, OnSelendokAnimSound19Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND20_PULLDOWN, OnSelendokAnimSound20Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND21_PULLDOWN, OnSelendokAnimSound21Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND22_PULLDOWN, OnSelendokAnimSound22Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND23_PULLDOWN, OnSelendokAnimSound23Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND3_PULLDOWN, OnSelendokAnimSound3Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND4_PULLDOWN, OnSelendokAnimSound4Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND5_PULLDOWN, OnSelendokAnimSound5Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND6_PULLDOWN, OnSelendokAnimSound6Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND7_PULLDOWN, OnSelendokAnimSound7Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND8_PULLDOWN, OnSelendokAnimSound8Pulldown)
|
|
ON_CBN_SELENDOK(IDC_ANIM_SOUND9_PULLDOWN, OnSelendokAnimSound9Pulldown)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CAnimStatesDialog message handlers
|
|
|
|
void CAnimStatesDialog::OnAlertCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_ALERT].used=IsDlgButtonChecked(IDC_ALERT_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnDeathCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_DEATH].used=IsDlgButtonChecked(IDC_DEATH_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnFlinchCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_FLINCH].used=IsDlgButtonChecked(IDC_FLINCH_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnGotoFlyingCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_ALERT_FLYING].used=IsDlgButtonChecked(IDC_GOTO_FLYING_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnGotoJumpingCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_ALERT_JUMPING].used=IsDlgButtonChecked(IDC_GOTO_JUMPING_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnGotoRollingCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_ALERT_ROLLING].used=IsDlgButtonChecked(IDC_GOTO_ROLLING_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnGotoStandingCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_ALERT_STANDING].used=IsDlgButtonChecked(IDC_GOTO_STANDING_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnGotoWalkingCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_ALERT_WALKING].used=IsDlgButtonChecked(IDC_GOTO_WALKING_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnIdleCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_IDLE].used=IsDlgButtonChecked(IDC_IDLE_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnMelee1Check()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_MELEE1].used=IsDlgButtonChecked(IDC_MELEE1_CHECK);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnMelee1RecoilCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_MELEE1_RECOIL].used=IsDlgButtonChecked(IDC_MELEE1_RECOIL_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnMelee2Check()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_MELEE2].used=IsDlgButtonChecked(IDC_MELEE2_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnMelee2RecoilCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_MELEE1_RECOIL].used=IsDlgButtonChecked(IDC_MELEE1_RECOIL_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnMissile1Check()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_BIRTH].used=IsDlgButtonChecked(IDC_MISSILE1_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnMissile1RecoilCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_MISSILE1_RECOIL].used=IsDlgButtonChecked(IDC_MISSILE1_RECOIL_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnMissile2Check()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_MISSILE2].used=IsDlgButtonChecked(IDC_MISSILE2_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnMissile2RecoilCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_MISSILE2_RECOIL].used=IsDlgButtonChecked(IDC_MISSILE2_RECOIL_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnQuirkCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_QUIRK].used=IsDlgButtonChecked(IDC_QUIRK_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSpecial1Check()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_IDLE_STANDING].used=IsDlgButtonChecked(IDC_SPECIAL1_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSpecial2Check()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_IDLE_FLYING].used=IsDlgButtonChecked(IDC_SPECIAL2_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSpecial3Check()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_IDLE_ROLLING].used=IsDlgButtonChecked(IDC_SPECIAL3_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSpecial4Check()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_IDLE_WALKING].used=IsDlgButtonChecked(IDC_SPECIAL4_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSpecial5Check()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_GOTO_IDLE_JUMPING].used=IsDlgButtonChecked(IDC_SPECIAL5_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnTauntCheck()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
m_anim[mc].elem[AS_TAUNT].used=IsDlgButtonChecked(IDC_TAUNT_CHECK);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokCurrentAnimationPulldown()
|
|
{
|
|
int i,cur;
|
|
char name[200];
|
|
|
|
cur=SendDlgItemMessage( IDC_CURRENT_ANIMATION_PULLDOWN, CB_GETCURSEL,0,0);
|
|
SendDlgItemMessage( IDC_CURRENT_ANIMATION_PULLDOWN, CB_GETLBTEXT,cur,(LPARAM) (LPCTSTR)name);
|
|
|
|
for (i=0;i<NUM_ANIMS_PER_CLASS;i++)
|
|
{
|
|
if (!stricmp (Anim_state_names[i],name))
|
|
break;
|
|
}
|
|
|
|
ASSERT (i!=NUM_ANIMS_PER_CLASS);
|
|
|
|
m_current_anim=i;
|
|
|
|
UpdateDialog();
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokCurrentStatePulldown()
|
|
{
|
|
int i,cur;
|
|
char name[200];
|
|
|
|
cur=SendDlgItemMessage( IDC_CURRENT_STATE_PULLDOWN, CB_GETCURSEL,0,0);
|
|
SendDlgItemMessage( IDC_CURRENT_STATE_PULLDOWN, CB_GETLBTEXT,cur,(LPARAM) (LPCTSTR)name);
|
|
|
|
for (i=0;i<NUM_MOVEMENT_CLASSES;i++)
|
|
{
|
|
if (!stricmp (Movement_class_names[i],name))
|
|
break;
|
|
}
|
|
|
|
ASSERT (i!=NUM_MOVEMENT_CLASSES);
|
|
|
|
m_current_state=i;
|
|
|
|
UpdateDialog();
|
|
|
|
|
|
}
|
|
|
|
BOOL CAnimStatesDialog::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_current_state=0;
|
|
m_current_anim=0;
|
|
|
|
CWnd::SetTimer(1,50,NULL);
|
|
|
|
UpdateDialog();
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CAnimStatesDialog::OnTimer(UINT nIDEvent)
|
|
{
|
|
UpdateAnimStateView();
|
|
|
|
CDialog::OnTimer(nIDEvent);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusAlertFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_ALERT_FROM_EDIT);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusAlertToEdit()
|
|
{
|
|
KillFocusTos (IDC_ALERT_TO_EDIT);
|
|
}
|
|
|
|
|
|
#define NUM_ANIM_FRAMES 30
|
|
|
|
// Draws the object based on the current animation state
|
|
void CAnimStatesDialog::UpdateAnimStateView()
|
|
{
|
|
int mc=m_current_state;
|
|
int anim=m_current_anim;
|
|
CWnd *objectwnd;
|
|
RECT rect;
|
|
int x, y, bm_handle,w,h;
|
|
static int frame=0;
|
|
grHardwareSurface surf;
|
|
|
|
if (m_anim[mc].elem[anim].used!=1)
|
|
return;
|
|
|
|
// Bail out if the "to" frame is less than the "from" frame (ie backwards)
|
|
if (m_anim[mc].elem[anim].to<m_anim[mc].elem[anim].from)
|
|
return;
|
|
|
|
float frame_diff=(float)abs(m_anim[mc].elem[anim].to-m_anim[mc].elem[anim].from);
|
|
float frame_start=m_anim[mc].elem[anim].from;
|
|
|
|
frame++;
|
|
if (frame==NUM_ANIM_FRAMES)
|
|
frame=0;
|
|
|
|
objectwnd = GetDlgItem(IDC_ANIMSTATE_VIEW);
|
|
objectwnd->GetWindowRect(&rect);
|
|
ScreenToClient(&rect);
|
|
|
|
Desktop_surf->attach_to_window((unsigned)m_hWnd);
|
|
|
|
w=rect.right-rect.left;
|
|
h=rect.bottom-rect.top;
|
|
|
|
bm_handle = m_render_handle; //GetObjectImage(m_current_id);
|
|
|
|
vector zero_vector;
|
|
vector view_vector={0,0,-20};
|
|
matrix id_matrix,rot_matrix;
|
|
poly_model *pm=GetPolymodelPointer (bm_handle);
|
|
|
|
vm_MakeZero (&zero_vector);
|
|
vm_MakeIdentity (&id_matrix);
|
|
|
|
float norm_angles[MAX_SUBOBJECTS];
|
|
float keyframe = frame_start + frame_diff*((float)frame/(float)NUM_ANIM_FRAMES);
|
|
|
|
SetNormalizedTimeAnim(keyframe, norm_angles, pm);
|
|
|
|
vm_AnglesToMatrix (&rot_matrix,0,m_SpinFrame*400,0);
|
|
view_vector.z=-(fabs(pm->maxs.z-pm->mins.z)*2);
|
|
|
|
surf.create(128, 128, BPP_16);
|
|
grViewport *vport=new grViewport (&surf);
|
|
StartEditorFrame (vport,&view_vector,&id_matrix,D3_DEFAULT_ZOOM);
|
|
DrawPolygonModel (&zero_vector,&rot_matrix,bm_handle,norm_angles,0,1.0,1.0,1.0);
|
|
EndEditorFrame();
|
|
|
|
x = rect.left + ((rect.right-rect.left)/2) - surf.width()/2;
|
|
y = rect.top + ((rect.bottom-rect.top)/2) - surf.height()/2;
|
|
Desktop_surf->blt(x, y, &surf);
|
|
|
|
delete vport;
|
|
surf.free();
|
|
|
|
|
|
}
|
|
|
|
|
|
void CAnimStatesDialog::UpdateDialog()
|
|
{
|
|
CEdit *ebox;
|
|
char str[20];
|
|
int mc=m_current_state;
|
|
int max_states=24;
|
|
int control_froms[]={IDC_ALERT_FROM_EDIT,IDC_DEATH_FROM_EDIT,IDC_MISSILE1_FROM_EDIT,
|
|
IDC_RECOIL1_FROM_EDIT, IDC_MISSILE2_FROM_EDIT,
|
|
IDC_RECOIL2_FROM_EDIT,IDC_MELEE1_FROM_EDIT,IDC_MRECOIL1_FROM_EDIT,
|
|
IDC_MELEE2_FROM_EDIT,IDC_MRECOIL2_FROM_EDIT,IDC_IDLE_FROM_EDIT,
|
|
IDC_QUIRK_FROM_EDIT,IDC_FLINCH_FROM_EDIT,IDC_TAUNT_FROM_EDIT,
|
|
IDC_SPECIAL1_FROM_EDIT,IDC_SPECIAL2_FROM_EDIT,IDC_SPECIAL3_FROM_EDIT,
|
|
IDC_SPECIAL4_FROM_EDIT,IDC_SPECIAL5_FROM_EDIT,
|
|
IDC_STANDING_FROM_EDIT,IDC_FLYING_FROM_EDIT,IDC_ROLLING_FROM_EDIT,
|
|
IDC_WALKING_FROM_EDIT,IDC_JUMPING_FROM_EDIT};
|
|
|
|
|
|
int control_tos[]= {IDC_ALERT_TO_EDIT,IDC_DEATH_TO_EDIT,IDC_MISSILE1_TO_EDIT,
|
|
IDC_RECOIL1_TO_EDIT, IDC_MISSILE2_TO_EDIT,
|
|
IDC_RECOIL2_TO_EDIT,IDC_MELEE1_TO_EDIT,IDC_MRECOIL1_TO_EDIT,
|
|
IDC_MELEE2_TO_EDIT,IDC_MRECOIL2_TO_EDIT,IDC_IDLE_TO_EDIT,
|
|
IDC_QUIRK_TO_EDIT,IDC_FLINCH_TO_EDIT,IDC_TAUNT_TO_EDIT,
|
|
IDC_SPECIAL1_TO_EDIT,IDC_SPECIAL2_TO_EDIT,IDC_SPECIAL3_TO_EDIT,
|
|
IDC_SPECIAL4_TO_EDIT,IDC_SPECIAL5_TO_EDIT,
|
|
IDC_STANDING_TO_EDIT,IDC_FLYING_TO_EDIT,IDC_ROLLING_TO_EDIT,
|
|
IDC_WALKING_TO_EDIT,IDC_JUMPING_TO_EDIT};
|
|
|
|
int control_spc[]= {IDC_SEC_PER_CYCLE_EDIT1, IDC_SEC_PER_CYCLE_EDIT2, IDC_SEC_PER_CYCLE_EDIT3,
|
|
IDC_SEC_PER_CYCLE_EDIT4, IDC_SEC_PER_CYCLE_EDIT5, IDC_SEC_PER_CYCLE_EDIT6,
|
|
IDC_SEC_PER_CYCLE_EDIT7, IDC_SEC_PER_CYCLE_EDIT8, IDC_SEC_PER_CYCLE_EDIT9,
|
|
IDC_SEC_PER_CYCLE_EDIT10, IDC_SEC_PER_CYCLE_EDIT11, IDC_SEC_PER_CYCLE_EDIT12,
|
|
IDC_SEC_PER_CYCLE_EDIT13, IDC_SEC_PER_CYCLE_EDIT14, IDC_SEC_PER_CYCLE_EDIT15,
|
|
IDC_SEC_PER_CYCLE_EDIT16, IDC_SEC_PER_CYCLE_EDIT17, IDC_SEC_PER_CYCLE_EDIT18,
|
|
IDC_SEC_PER_CYCLE_EDIT19, IDC_SEC_PER_CYCLE_EDIT20, IDC_SEC_PER_CYCLE_EDIT21,
|
|
IDC_SEC_PER_CYCLE_EDIT22, IDC_SEC_PER_CYCLE_EDIT23, IDC_SEC_PER_CYCLE_EDIT24};
|
|
|
|
int anim_sounds[]= {IDC_ANIM_SOUND0_PULLDOWN, IDC_ANIM_SOUND1_PULLDOWN, IDC_ANIM_SOUND2_PULLDOWN,
|
|
IDC_ANIM_SOUND3_PULLDOWN, IDC_ANIM_SOUND4_PULLDOWN, IDC_ANIM_SOUND5_PULLDOWN,
|
|
IDC_ANIM_SOUND6_PULLDOWN, IDC_ANIM_SOUND7_PULLDOWN, IDC_ANIM_SOUND8_PULLDOWN,
|
|
IDC_ANIM_SOUND9_PULLDOWN, IDC_ANIM_SOUND10_PULLDOWN, IDC_ANIM_SOUND11_PULLDOWN,
|
|
IDC_ANIM_SOUND12_PULLDOWN, IDC_ANIM_SOUND13_PULLDOWN, IDC_ANIM_SOUND14_PULLDOWN,
|
|
IDC_ANIM_SOUND15_PULLDOWN, IDC_ANIM_SOUND16_PULLDOWN, IDC_ANIM_SOUND17_PULLDOWN,
|
|
IDC_ANIM_SOUND18_PULLDOWN, IDC_ANIM_SOUND19_PULLDOWN, IDC_ANIM_SOUND20_PULLDOWN,
|
|
IDC_ANIM_SOUND21_PULLDOWN, IDC_ANIM_SOUND22_PULLDOWN, IDC_ANIM_SOUND23_PULLDOWN};
|
|
|
|
CheckDlgButton (IDC_ALERT_CHECK,m_anim[mc].elem[AS_ALERT].used?1:0);
|
|
CheckDlgButton (IDC_DEATH_CHECK,m_anim[mc].elem[AS_DEATH].used?1:0);
|
|
CheckDlgButton (IDC_MISSILE1_CHECK,m_anim[mc].elem[AS_BIRTH].used?1:0);
|
|
CheckDlgButton (IDC_MISSILE1_RECOIL_CHECK,m_anim[mc].elem[AS_MISSILE1_RECOIL].used?1:0);
|
|
CheckDlgButton (IDC_MISSILE2_CHECK,m_anim[mc].elem[AS_MISSILE2].used?1:0);
|
|
CheckDlgButton (IDC_MISSILE2_RECOIL_CHECK,m_anim[mc].elem[AS_MISSILE2_RECOIL].used?1:0);
|
|
CheckDlgButton (IDC_MELEE1_CHECK,m_anim[mc].elem[AS_MELEE1].used?1:0);
|
|
CheckDlgButton (IDC_MELEE1_RECOIL_CHECK,m_anim[mc].elem[AS_MELEE1_RECOIL].used?1:0);
|
|
CheckDlgButton (IDC_MELEE2_CHECK,m_anim[mc].elem[AS_MELEE2].used?1:0);
|
|
CheckDlgButton (IDC_MELEE2_RECOIL_CHECK,m_anim[mc].elem[AS_MELEE2_RECOIL].used?1:0);
|
|
CheckDlgButton (IDC_QUIRK_CHECK,m_anim[mc].elem[AS_QUIRK].used?1:0);
|
|
CheckDlgButton (IDC_IDLE_CHECK,m_anim[mc].elem[AS_IDLE].used?1:0);
|
|
CheckDlgButton (IDC_TAUNT_CHECK,m_anim[mc].elem[AS_TAUNT].used?1:0);
|
|
CheckDlgButton (IDC_FLINCH_CHECK,m_anim[mc].elem[AS_FLINCH].used?1:0);
|
|
CheckDlgButton (IDC_SPECIAL1_CHECK,m_anim[mc].elem[AS_GOTO_IDLE_STANDING].used?1:0);
|
|
CheckDlgButton (IDC_SPECIAL2_CHECK,m_anim[mc].elem[AS_GOTO_IDLE_FLYING].used?1:0);
|
|
CheckDlgButton (IDC_SPECIAL3_CHECK,m_anim[mc].elem[AS_GOTO_IDLE_ROLLING].used?1:0);
|
|
CheckDlgButton (IDC_SPECIAL4_CHECK,m_anim[mc].elem[AS_GOTO_IDLE_WALKING].used?1:0);
|
|
CheckDlgButton (IDC_SPECIAL5_CHECK,m_anim[mc].elem[AS_GOTO_IDLE_JUMPING].used?1:0);
|
|
CheckDlgButton (IDC_GOTO_STANDING_CHECK,m_anim[mc].elem[AS_GOTO_ALERT_STANDING].used?1:0);
|
|
CheckDlgButton (IDC_GOTO_FLYING_CHECK,m_anim[mc].elem[AS_GOTO_ALERT_FLYING].used?1:0);
|
|
CheckDlgButton (IDC_GOTO_WALKING_CHECK,m_anim[mc].elem[AS_GOTO_ALERT_WALKING].used?1:0);
|
|
CheckDlgButton (IDC_GOTO_ROLLING_CHECK,m_anim[mc].elem[AS_GOTO_ALERT_ROLLING].used?1:0);
|
|
CheckDlgButton (IDC_GOTO_JUMPING_CHECK,m_anim[mc].elem[AS_GOTO_ALERT_JUMPING].used?1:0);
|
|
|
|
|
|
for (int i=0;i<max_states;i++)
|
|
{
|
|
ebox=(CEdit *) GetDlgItem (control_froms[i]);
|
|
itoa (m_anim[mc].elem[i].from,str,10);
|
|
ebox->SetWindowText (str);
|
|
|
|
ebox=(CEdit *) GetDlgItem (control_tos[i]);
|
|
itoa (m_anim[mc].elem[i].to,str,10);
|
|
ebox->SetWindowText (str);
|
|
|
|
ebox=(CEdit *) GetDlgItem (control_spc[i]);
|
|
sprintf(str, "%f", m_anim[mc].elem[i].spc);
|
|
ebox->SetWindowText (str);
|
|
}
|
|
|
|
if(!m_setup_sound_dialogs)
|
|
{
|
|
m_setup_sound_dialogs = true;
|
|
|
|
for (i=0;i<max_states;i++)
|
|
{
|
|
SendDlgItemMessage( anim_sounds[i], CB_RESETCONTENT,0,0);
|
|
}
|
|
for (i=0;i<MAX_SOUNDS;i++)
|
|
{
|
|
if (Sounds[i].used)
|
|
{
|
|
for (int j=0;j<max_states;j++)
|
|
{
|
|
SendDlgItemMessage( anim_sounds[j], CB_ADDSTRING,0,(LPARAM) (LPCTSTR) Sounds[i].name);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for (i=0;i<max_states;i++)
|
|
{
|
|
if(m_anim[mc].elem[i].anim_sound_index >= 0 && m_anim[mc].elem[i].anim_sound_index < MAX_SOUNDS && Sounds[m_anim[mc].elem[i].anim_sound_index].used != 0)
|
|
SendDlgItemMessage( anim_sounds[i], CB_SELECTSTRING,0,(LPARAM) (LPCTSTR) Sounds[m_anim[mc].elem[i].anim_sound_index].name);
|
|
else
|
|
SendDlgItemMessage( anim_sounds[i], CB_SELECTSTRING,0,(LPARAM) (LPCTSTR) "\0");
|
|
}
|
|
|
|
SendDlgItemMessage( IDC_CURRENT_STATE_PULLDOWN, CB_RESETCONTENT,0,0);
|
|
for (i=0;i<NUM_MOVEMENT_CLASSES;i++)
|
|
SendDlgItemMessage( IDC_CURRENT_STATE_PULLDOWN, CB_ADDSTRING,0,(LPARAM) (LPCTSTR) Movement_class_names[i]);
|
|
|
|
SendDlgItemMessage( IDC_CURRENT_STATE_PULLDOWN, CB_SELECTSTRING,0,(LPARAM) (LPCTSTR) Movement_class_names[m_current_state]);
|
|
|
|
SendDlgItemMessage( IDC_CURRENT_ANIMATION_PULLDOWN, CB_RESETCONTENT,0,0);
|
|
for (i=0;i<NUM_ANIMS_PER_CLASS;i++)
|
|
SendDlgItemMessage( IDC_CURRENT_ANIMATION_PULLDOWN, CB_ADDSTRING,0,(LPARAM) (LPCTSTR) Anim_state_names[i]);
|
|
|
|
SendDlgItemMessage( IDC_CURRENT_ANIMATION_PULLDOWN, CB_SELECTSTRING,0,(LPARAM) (LPCTSTR) Anim_state_names[m_current_anim]);
|
|
|
|
UpdateAnimStateView();
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::KillFocusFroms(int num)
|
|
{
|
|
int control_froms[]={IDC_ALERT_FROM_EDIT,IDC_DEATH_FROM_EDIT,IDC_MISSILE1_FROM_EDIT,
|
|
IDC_RECOIL1_FROM_EDIT, IDC_MISSILE2_FROM_EDIT,
|
|
IDC_RECOIL2_FROM_EDIT,IDC_MELEE1_FROM_EDIT,IDC_MRECOIL1_FROM_EDIT,
|
|
IDC_MELEE2_FROM_EDIT,IDC_MRECOIL2_FROM_EDIT,IDC_IDLE_FROM_EDIT,
|
|
IDC_QUIRK_FROM_EDIT,IDC_FLINCH_FROM_EDIT,IDC_TAUNT_FROM_EDIT,
|
|
IDC_SPECIAL1_FROM_EDIT,IDC_SPECIAL2_FROM_EDIT,IDC_SPECIAL3_FROM_EDIT,
|
|
IDC_SPECIAL4_FROM_EDIT,IDC_SPECIAL5_FROM_EDIT,
|
|
IDC_STANDING_FROM_EDIT,IDC_FLYING_FROM_EDIT,IDC_ROLLING_FROM_EDIT,
|
|
IDC_WALKING_FROM_EDIT,IDC_JUMPING_FROM_EDIT};
|
|
|
|
char str[20];
|
|
int mc=m_current_state;
|
|
|
|
PageInPolymodel (m_render_handle);
|
|
|
|
int min_keyframe = Poly_models[m_render_handle].frame_min;
|
|
int max_keyframe = Poly_models[m_render_handle].frame_max;
|
|
int i;
|
|
int max_states=24;
|
|
|
|
for (i=0;i<max_states;i++)
|
|
if (control_froms[i]==num)
|
|
break;
|
|
|
|
ASSERT (i!=max_states);
|
|
|
|
int anim_state=i;
|
|
|
|
CEdit *ebox=(CEdit *) GetDlgItem (num);
|
|
ebox->GetWindowText (str,20);
|
|
|
|
int frame=atoi (str);
|
|
|
|
if (frame<min_keyframe)
|
|
frame=min_keyframe;
|
|
else if (frame>max_keyframe)
|
|
frame=max_keyframe;
|
|
|
|
m_anim[mc].elem[anim_state].from=frame;
|
|
UpdateDialog();
|
|
}
|
|
|
|
void CAnimStatesDialog::KillFocusSPC(int num)
|
|
{
|
|
int control_spc[]= {IDC_SEC_PER_CYCLE_EDIT1, IDC_SEC_PER_CYCLE_EDIT2, IDC_SEC_PER_CYCLE_EDIT3,
|
|
IDC_SEC_PER_CYCLE_EDIT4, IDC_SEC_PER_CYCLE_EDIT5, IDC_SEC_PER_CYCLE_EDIT6,
|
|
IDC_SEC_PER_CYCLE_EDIT7, IDC_SEC_PER_CYCLE_EDIT8, IDC_SEC_PER_CYCLE_EDIT9,
|
|
IDC_SEC_PER_CYCLE_EDIT10, IDC_SEC_PER_CYCLE_EDIT11, IDC_SEC_PER_CYCLE_EDIT12,
|
|
IDC_SEC_PER_CYCLE_EDIT13, IDC_SEC_PER_CYCLE_EDIT14, IDC_SEC_PER_CYCLE_EDIT15,
|
|
IDC_SEC_PER_CYCLE_EDIT16, IDC_SEC_PER_CYCLE_EDIT17, IDC_SEC_PER_CYCLE_EDIT18,
|
|
IDC_SEC_PER_CYCLE_EDIT19, IDC_SEC_PER_CYCLE_EDIT20, IDC_SEC_PER_CYCLE_EDIT21,
|
|
IDC_SEC_PER_CYCLE_EDIT22, IDC_SEC_PER_CYCLE_EDIT23, IDC_SEC_PER_CYCLE_EDIT24};
|
|
char str[20];
|
|
int mc=m_current_state;
|
|
int i;
|
|
int max_states=24;
|
|
|
|
// Find the index into the array
|
|
for (i = 0;i < max_states; i++)
|
|
if (control_spc[i] == num)
|
|
break;
|
|
|
|
// Make sure that we find it
|
|
ASSERT (i != max_states);
|
|
|
|
int anim_state = i;
|
|
|
|
CEdit *ebox=(CEdit *) GetDlgItem (num);
|
|
ebox->GetWindowText (str,20);
|
|
|
|
float spc = atof(str);
|
|
|
|
if (spc <= 0.0 || spc >= 10000.0)
|
|
spc = 1.0f;
|
|
|
|
m_anim[mc].elem[anim_state].spc = spc;
|
|
UpdateDialog();
|
|
}
|
|
|
|
void CAnimStatesDialog::KillFocusTos(int num)
|
|
{
|
|
int control_tos[]={ IDC_ALERT_TO_EDIT,IDC_DEATH_TO_EDIT,IDC_MISSILE1_TO_EDIT,
|
|
IDC_RECOIL1_TO_EDIT, IDC_MISSILE2_TO_EDIT,
|
|
IDC_RECOIL2_TO_EDIT,IDC_MELEE1_TO_EDIT,IDC_MRECOIL1_TO_EDIT,
|
|
IDC_MELEE2_TO_EDIT,IDC_MRECOIL2_TO_EDIT,IDC_IDLE_TO_EDIT,
|
|
IDC_QUIRK_TO_EDIT,IDC_FLINCH_TO_EDIT,IDC_TAUNT_TO_EDIT,
|
|
IDC_SPECIAL1_TO_EDIT,IDC_SPECIAL2_TO_EDIT,IDC_SPECIAL3_TO_EDIT,
|
|
IDC_SPECIAL4_TO_EDIT,IDC_SPECIAL5_TO_EDIT,
|
|
IDC_STANDING_TO_EDIT,IDC_FLYING_TO_EDIT,IDC_ROLLING_TO_EDIT,
|
|
IDC_WALKING_TO_EDIT,IDC_JUMPING_TO_EDIT};
|
|
|
|
char str[20];
|
|
int mc=m_current_state;
|
|
int min_keyframe = Poly_models[m_render_handle].frame_min;
|
|
int max_keyframe = Poly_models[m_render_handle].frame_max;
|
|
int i;
|
|
int max_states=24;
|
|
|
|
for (i=0;i<max_states;i++)
|
|
if (control_tos[i]==num)
|
|
break;
|
|
|
|
ASSERT (i!=max_states);
|
|
|
|
int anim_state=i;
|
|
|
|
CEdit *ebox=(CEdit *) GetDlgItem (num);
|
|
ebox->GetWindowText (str,20);
|
|
|
|
int frame=atoi (str);
|
|
|
|
if (frame<min_keyframe)
|
|
frame=min_keyframe;
|
|
else if (frame>max_keyframe)
|
|
frame=max_keyframe;
|
|
|
|
|
|
m_anim[mc].elem[anim_state].to=frame;
|
|
UpdateDialog();
|
|
}
|
|
|
|
|
|
void CAnimStatesDialog::OnKillfocusDeathFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_DEATH_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusDeathToEdit()
|
|
{
|
|
KillFocusTos (IDC_DEATH_TO_EDIT);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusFlinchFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_FLINCH_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusFlinchToEdit()
|
|
{
|
|
KillFocusTos (IDC_FLINCH_TO_EDIT);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusFlyingFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_FLYING_FROM_EDIT);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusFlyingToEdit()
|
|
{
|
|
KillFocusTos (IDC_FLYING_TO_EDIT);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusIdleFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_IDLE_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusIdleToEdit()
|
|
{
|
|
KillFocusTos (IDC_IDLE_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusJumpingFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_JUMPING_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusJumpingToEdit()
|
|
{
|
|
|
|
KillFocusTos (IDC_JUMPING_TO_EDIT);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMelee1FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_MELEE1_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMelee1ToEdit()
|
|
{
|
|
KillFocusTos (IDC_MELEE1_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMelee2FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_MELEE2_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMissile1FromEdit()
|
|
{
|
|
|
|
KillFocusFroms (IDC_MISSILE1_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMissile1ToEdit()
|
|
{
|
|
KillFocusTos (IDC_MISSILE1_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMissile2FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_MISSILE2_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMissile2ToEdit()
|
|
{
|
|
KillFocusTos (IDC_MISSILE2_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMrecoil1ToEdit()
|
|
{
|
|
KillFocusTos (IDC_MRECOIL1_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMrecoil1FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_MRECOIL1_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMrecoil2FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_MRECOIL2_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMrecoil2ToEdit()
|
|
{
|
|
KillFocusTos (IDC_MRECOIL2_TO_EDIT);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusQuirkFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_QUIRK_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusQuirkToEdit()
|
|
{
|
|
KillFocusTos (IDC_QUIRK_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusRecoil1FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_RECOIL1_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusRecoil1ToEdit()
|
|
{
|
|
KillFocusTos (IDC_RECOIL1_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusRecoil2FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_RECOIL2_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusRecoil2ToEdit()
|
|
{
|
|
KillFocusTos (IDC_RECOIL2_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusRollingFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_ROLLING_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusRollingToEdit()
|
|
{
|
|
KillFocusTos (IDC_ROLLING_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial1FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_SPECIAL1_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial1ToEdit()
|
|
{
|
|
KillFocusTos (IDC_SPECIAL1_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial2FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_SPECIAL2_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial2ToEdit()
|
|
{
|
|
KillFocusTos (IDC_SPECIAL2_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial3FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_SPECIAL3_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial3ToEdit()
|
|
{
|
|
KillFocusTos (IDC_SPECIAL3_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial4FromEdit()
|
|
{
|
|
|
|
KillFocusFroms (IDC_SPECIAL4_FROM_EDIT);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial4ToEdit()
|
|
{
|
|
KillFocusTos (IDC_SPECIAL4_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial5FromEdit()
|
|
{
|
|
KillFocusFroms (IDC_SPECIAL5_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSpecial5ToEdit()
|
|
{
|
|
KillFocusTos (IDC_SPECIAL5_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusStandingFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_STANDING_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusStandingToEdit()
|
|
{
|
|
KillFocusTos (IDC_STANDING_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusTauntFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_TAUNT_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusTauntToEdit()
|
|
{
|
|
KillFocusTos (IDC_TAUNT_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusWalkingFromEdit()
|
|
{
|
|
KillFocusFroms (IDC_WALKING_FROM_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusWalkingToEdit()
|
|
{
|
|
KillFocusTos (IDC_WALKING_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusMelee2ToEdit()
|
|
{
|
|
KillFocusTos (IDC_MELEE2_TO_EDIT);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnResetAnimZero()
|
|
{
|
|
int mc=m_current_state;
|
|
|
|
memset (m_anim[mc].elem,0,NUM_ANIMS_PER_CLASS*sizeof(anim_entry));
|
|
UpdateDialog();
|
|
}
|
|
|
|
void CAnimStatesDialog::OnRotLeft()
|
|
{
|
|
m_SpinFrame-=3;
|
|
}
|
|
|
|
void CAnimStatesDialog::OnRotRight()
|
|
{
|
|
m_SpinFrame+=3;
|
|
}
|
|
|
|
//Copy data from CAnimStatesDialog class to anim struct
|
|
void CAnimStatesDialog::GetAnimData(anim_elem *anim_info)
|
|
{
|
|
for (int i=0;i<NUM_MOVEMENT_CLASSES;i++)
|
|
for (int j=0;j<NUM_ANIMS_PER_CLASS;j++)
|
|
anim_info[i].elem[j] = m_anim[i].elem[j];
|
|
}
|
|
|
|
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit1()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT1);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit2()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT2);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit3()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT3);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit4()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT4);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit5()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT5);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit6()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT6);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit7()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT7);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit8()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT8);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit9()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT9);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit10()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT10);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit11()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT11);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit12()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT12);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit13()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT13);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit14()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT14);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit15()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT15);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit16()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT16);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit17()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT17);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit18()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT18);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit19()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT19);
|
|
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit20()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT20);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit21()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT21);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit22()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT22);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit23()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT23);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnKillfocusSecPerCycleEdit24()
|
|
{
|
|
KillFocusSPC(IDC_SEC_PER_CYCLE_EDIT24);
|
|
}
|
|
|
|
void CAnimStatesDialog::KillFocusAnimSoundName(int num)
|
|
{
|
|
int anim_sounds[]= {IDC_ANIM_SOUND0_PULLDOWN, IDC_ANIM_SOUND1_PULLDOWN, IDC_ANIM_SOUND2_PULLDOWN,
|
|
IDC_ANIM_SOUND3_PULLDOWN, IDC_ANIM_SOUND4_PULLDOWN, IDC_ANIM_SOUND5_PULLDOWN,
|
|
IDC_ANIM_SOUND6_PULLDOWN, IDC_ANIM_SOUND7_PULLDOWN, IDC_ANIM_SOUND8_PULLDOWN,
|
|
IDC_ANIM_SOUND9_PULLDOWN, IDC_ANIM_SOUND10_PULLDOWN, IDC_ANIM_SOUND11_PULLDOWN,
|
|
IDC_ANIM_SOUND12_PULLDOWN, IDC_ANIM_SOUND13_PULLDOWN, IDC_ANIM_SOUND14_PULLDOWN,
|
|
IDC_ANIM_SOUND15_PULLDOWN, IDC_ANIM_SOUND16_PULLDOWN, IDC_ANIM_SOUND17_PULLDOWN,
|
|
IDC_ANIM_SOUND18_PULLDOWN, IDC_ANIM_SOUND19_PULLDOWN, IDC_ANIM_SOUND20_PULLDOWN,
|
|
IDC_ANIM_SOUND21_PULLDOWN, IDC_ANIM_SOUND22_PULLDOWN, IDC_ANIM_SOUND23_PULLDOWN};
|
|
|
|
int mc=m_current_state;
|
|
int cur;
|
|
|
|
char name[200];
|
|
|
|
cur=SendDlgItemMessage( anim_sounds[num], CB_GETCURSEL,0,0);
|
|
SendDlgItemMessage( anim_sounds[num], CB_GETLBTEXT,cur,(LPARAM) (LPCTSTR)name);
|
|
|
|
m_anim[mc].elem[num].anim_sound_index = FindSoundName (name);
|
|
|
|
UpdateDialog();
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound0Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(0);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound1Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(1);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound2Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(2);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound10Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(10);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound11Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(11);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound12Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(12);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound13Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(13);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound14Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(14);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound15Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(15);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound16Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(16);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound17Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(17);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound18Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(18);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound19Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(19);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound20Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(20);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound21Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(21);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound22Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(22);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound23Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(23);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound3Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(3);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound4Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(4);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound5Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(5);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound6Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(6);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound7Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(7);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound8Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(8);
|
|
}
|
|
|
|
void CAnimStatesDialog::OnSelendokAnimSound9Pulldown()
|
|
{
|
|
KillFocusAnimSoundName(9);
|
|
}
|