[Mission Review]
움직임 정보 - 이동, 회전, 몸통회전, 셨다운
무기 발사 - 누가 어디를 향하여 무엇을 발사.
데미지 정보 - 누구의 무슨 무기에 어디를 가격 당함...
충돌 정보 - 누가 누구(어떤 빌딩)의 어디 부분에 부딪혀서 얼마의 데미지
이젝트 - 누가 이젝트
리스폰 - 어디에 누가 리스폰...
사용자 및 멕 상태...

[Score Sheet]
콘솔에서 프린트하기
[Console]
중간에 게임 캔슬하기.

RecScore(const ReplicatorID& who, const ReplicatorID& whom, int nType, UINT uWhere, UINT uBy, DWORD dwParam)

Mech::PostCollisionExecute
  Mech::ReactToDestruction
    ScoringReactToMechDeath
Entity::TakeDamage
  ReactToDamageTaken

CBucketManager::UpdateFrame
  CBucketManager::UpdateObjectiveFrame
--Flag::IncrementScore

MWInternalDamageObject::_TakeDamage
Mech::TakeDamageMessageHandler
Mech::ReactToHit
Mech::ReactToDamageTaken

[binary파일들]
.obb

netclientservercontoller.cpp  443line "// jcem - Verify(fabs(time_dif) > 0.0f);"
ElementRenderer::GroupElement::SetSyncState() - 380line
adept/tile.cpp "Verify(enter >= 0.0f && enter <= leave);" 65line

void VehicleInterface::SetGUITarget(Entity* target)
{
    if (g_pCurTOC) {
        Entity* oldTarget = m_interfaceTarget.GetCurrent();
        if (oldTarget) {
            g_LastTarget = oldTarget->GetReplicatorID();
        } else {
			g_LastTarget = g_null_repid;
		}
    }


Libraries/Adept/UserInterface.cpp
/Adept/Application.cpp
Code\MW4GameEd2\MW4GameEd2.cpp & stdafx.h
scriptstrings.rc    IDS_MP_BOT_NAME         "Player Name:"


    // jcem - start
    if (CTCL_IsConsole()) {
        extern bool InNetworkGame;
        extern bool IAmTheServer;

	    InNetworkGame=0;
	    IAmTheServer=0;
    }

		ReplicatorID base_id;
        
        if (!CTCL_IsConsole()) // jcem
        base_id = Connection::Local->GetNextReplicatorID();

int __stdcall CTCL_IsTeslaUsed(void* instance, int args, void* data[])

GetLeader()...
  -> "AI_Lancemate.cpp" AI_SquadOrders.hpp

mwapplication.cpp
    // team order
    MESSAGE_NAME(MechWarrior4::MWApplication::TeamOrderMessageID);
    MESSAGE_NAME(MechWarrior4::MWApplication::svrTeamOrderMessageID);
    MESSAGE_NAME(MechWarrior4::MWApplication::RepTeamOrderMessageID);
    MESSAGE_NAME(MechWarrior4::MWApplication::svrRepTeamOrderMessageID);
    // team order

BOOL g_bExitGameOS_via_exit = TRUE;
GameOS/ImageHlp.cpp & GameOS/Libraries.cpp// directory settings...

GameOS/WinMain.cpp
	// 鉉 - start
	if (g_pfnRIO_Proc) {
		(*g_pfnRIO_Proc)();
	}
	// 鉉 - end

GameOS/WinProc.cpp
		// 鉉
		case WM_USER + 100:
		{
			// 鉉 - start
			if (g_pfnRIO_ButtonEvent) {
				(*g_pfnRIO_ButtonEvent)((BYTE*)&lParam);
			}
			// 鉉 - end			
		}
		break;


AddToLancemateGroup

void MWMission::CreateLancemateGroups()

void Vehicle::ProcessCommand(int command)
MWPlayer::LancemateCommandProxy::IssueCommand(Vehicle* v, MW4AI::LancemateCommands::ID command)

void LancemateCommands::Execute(ID command, const lancemate_list& lancemates)
void ExecuteForAllLancemates(const lancemate_list& lancemates, LancemateCommands::ID command_id)
inline MW4AI::SquadOrders* CombatAI::GetSquadOrders()
bool LancemateSquadOrders::CanExecuteCommands() const
Stuff::Auto_Ptr<LancemateCommands::LancemateCommand> LancemateSquadOrders::CreateCommand(LancemateCommands::ID command_id)
Stuff::Auto_Ptr<LancemateCommands::LancemateCommand> LancemateCommands::CreateLancemateCommand(ID command,
LancemateCommand::LancemateCommand(CombatAI& combat_ai,


bool LancemateSquadOrders::ShouldRunScript() const

EntityManager::PreCollisionExecute(Time till)
 ResolveReactionSpheres();
Mission::PreCollisionExecute(Time till)
Entity::PreCollisionExecute(Time till) <- mwmap(m_executingAIs) - MechAI - CombatAI

void CombatAI::PreCollisionExecute(Stuff::Time till)
void CombatAI::Update(Stuff::Time till)
void CombatAI::UpdateSquad()
void Group::UpdateAI(CombatAI& combat_ai)
  m_SquadAI->Update(*this,combat_ai);
  m_SquadOrders->Update();



{FRIENDLY|ENEMY}_COMPONENT_{KILLS|DEATHS}
KILLS|SUICIDES|DEATHS=>KILLS_BY_TONNAGE|FRIENDLY_KILLS_BY_TONNAGE|ENEMY_KILLS_BY_TONNAGE
DFA
LEG_SHOTS,ARM_SHOTS,TORSO_SHOTS,HEAD_SHOTS
DAMAGE_RECEIVE,DAMAGE_INFLICT=ENEMY_DAMAGE_RECEIVE,ENEMY_DAMAGE_INFLICT,FRIENDLY_DAMAGE_RECEIVE,FRIENDLY_DAMAGE_INFLICT

[todo]
Score Sheet
Cameraship
hsh/*.bmp들을 resource들로....
Console

Weapon Assignment - ok
Team Ordering -ok
RGB 분리-ok
[todo]
비디오 카드 종류 디스플레이하는 문제.
콘솔에서 Skin 선택문제
전에 버추얼월드에서 ctcl.ini에 관하여 수정사항 보내준 문서...

사용자 Mech Sync문제

콘솔에서 맵을 바꾸었을 때 팀 갯수가 제대로 Refresh되지 않음.

Console에서 현재 게임에 대한 정보(남은시간, 게임이름, 게임 상태)
클라이언트로 참여한 후 CGameList::~CGameList의 filter지울 때 문제
게임 만들기/참여 등에서 문제가 생겨서 StartMainShell해야 되는 경우...
/////

shell.script
  mainmenu.script -> callback($$SetShellCommand$$, START_NETWORK_SHELLS_COMMAND) & @SHELL@currentScreen = LAUNCHGAME

    MW4Shell::StartNetworkShellsCommand
    mw4shell.cpp -> StartNetworkStartupScreen
    Adept::gos_NetStartGame

    Multiplayer/MultiplayerConsole.script
	  // init
      callback($$CancelDialup$$)
      callback($$LoadMPConnectionSettings$$) -> load all m4c*(==name).m4c
      callback($$InitConnectionWizard$$) -> set 0 index or create new connection file & load

	  // on button(host or connect)

	  $$ConnectionIndex$$ = o_connections_droplist.nselected
	  callback($$PreConnect$$)
	  callback($$GetDialupConnectionStatus$$)
      Multiplayer/Hostgame1.script or Multiplayer/Listofgames.script


[bugs]
file:
line(101): o_thumbslide_skins.region = 0,-2 to buttonwidth,o_thumbslide_skins.handleheight+2
 * replace o_downarrow_skins.handleheight with o_thumbslide_skins.handleheight
scriptkeywords.cpp(6042):
 아래의 내용이 중복?...
	if( *pLine=='(' )
	{
		FoundOpen=1;
		pLine++;
	}

[stlport를 사용하는 프로젝트]
stuff
 map:NotationFile.*
Adept
 vector:control_mapping.*, controls.*
ElementRenderer
 map:gosFXElement.* <- GosFX::EffectLibrary.*
GosFX
 map:EffectLibrary.*
MW4
 vector,slist,map,list,stack
 ::sort, ::reverse, ::binary_function

[빌드과정에서 미심적은 부분]
Content/Textures/Maps/Lunar02/CA|CB|CC
Content/Textures/Customdecals/cstmdcal.txt
Maps/Misc

[Build에 관한 사항]
Script로 구현

Target
기본 함수 - Directory & Wild Card
Macro - Param
Except
exclude - Duplicated
filtering
compression - w/ param
encryption

[!4] MissionLang/StlPort
[stdcall] GameOS/GamePlatform/Gosscript/ImageLib/MFCPlatform

jgarbarini@virtualworld.com
mlowrance@virtualworld.com


