Teleporter Crash

08/26/2012 13:42 Crystal-Craft#1
hey leute ich wollte den teleporter von Aspectus einbauen nur wenn ich V drücke crasht das game.

FuncApplet.cpp
Code:
DECLAREAPPLET( AppMain_wndappteleport  , new CWndTeleporterNew   );

und

AddAppletFunc( AppMain_wndappteleport , APP_TELEPORTER_NEW             , _T( "WndTeleporterNew" )   , NULL   , GETTEXT( TID_TIP_DIALOG    ),  'V'  );
WndField.h
Code:
class CWndTeleporterNew : public CWndNeuz
{
public:
	int m_nSelected;
	CTexture* m_pPicTexture;
	CWndTeleporterNew( void );
	~CWndTeleporterNew( void );

	virtual HRESULT RestoreDeviceObjects();
	virtual HRESULT InvalidateDeviceObjects();
	virtual HRESULT DeleteDeviceObjects();

	public:
	virtual BOOL Initialize( CWndBase* pWndParent = NULL, DWORD nType = MB_OK ); 
	virtual BOOL OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); 
	virtual void OnDraw( C2DRender* p2DRender ); 
	virtual void OnInitialUpdate(); 
	virtual BOOL OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase ); 
	virtual void OnSize( UINT nType, int cx, int cy ); 
	virtual void OnLButtonUp( UINT nFlags, CPoint point ); 
	virtual void OnLButtonDown( UINT nFlags, CPoint point ); 

};
WndField.cpp
Code:
#ifdef __APP_TELEPORTER
//--------------- Teleport ----------------------------------
//-----------------------------------------------------------------------------
CWndTeleporterNew::CWndTeleporterNew( void ) 
{
	m_nSelected = 0;
}
//-----------------------------------------------------------------------------
CWndTeleporterNew::~CWndTeleporterNew( void )
{
    DeleteDeviceObjects();
}
//-----------------------------------------------------------------------------
BOOL CWndTeleporterNew::Initialize( CWndBase* pWndParent, DWORD dwType )
{
    return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_TELEPORTER_NEW, 0, CPoint( 0, 0 ), pWndParent );
}
//-----------------------------------------------------------------------------
BOOL CWndTeleporterNew::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase ) 
{ 
    return CWndNeuz::OnCommand( nID, dwMessage, pWndBase ); 
} 
void CWndTeleporterNew::OnSize( UINT nType, int cx, int cy ) 
{ 
    CWndNeuz::OnSize( nType, cx, cy ); 
} 
void CWndTeleporterNew::OnLButtonUp( UINT nFlags, CPoint point ) 
{ 
} 
void CWndTeleporterNew::OnLButtonDown( UINT nFlags, CPoint point ) 
{ 
} 
void CWndTeleporterNew::OnDraw( C2DRender* p2DRender )
{

	CWndStatic* pStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC2 );
	CWndText* pText = (CWndText*)GetDlgItem( WIDC_TEXT1 );
	CString strFile, strLandName, strDes;
	switch( m_nSelected )
	{
	case 0: strFile = "flaris.tga"; strLandName ="Flaris"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat.";  break;
	case 1: strFile = "SM.tga"; strLandName ="Saint Morning"; strDes="Saintmorning ist Saintmorning."; break;
	case 2: strFile = "darkon.tga"; strLandName ="Darkon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 3: strFile = "darkon1.tga"; strLandName ="Darkon 1"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 4: strFile = "darkon3.tga"; strLandName ="Darkon 3"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 5: strFile = "vulcano.tga"; strLandName ="Vulcano"; strDes= "Vulcano ist ein Dungeon in dem ein wütender Drache sein Zuhause hat. Dort dropt man die Bloody Waffen."; break;
	case 6: strFile = "behemoth.tga"; strLandName ="Behemoth Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 7: strFile = "animush.tga"; strLandName ="Animus - Hero Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 8: strFile = "animusm.tga"; strLandName ="Animus - Master Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 9: strFile = "tramnukm.tga"; strLandName ="Tramnuk - Master Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 10: strFile = "tramnuk.tga"; strLandName ="Tramnuk Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 11: strFile = "khaldera.tga"; strLandName ="Khaldera"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 12: strFile = "Bahara.tga"; strLandName ="Bahara"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 13: strFile = "Sanpres.tga"; strLandName ="Sanpres 1 Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 14: strFile = "Sanpres.tga"; strLandName ="Sanpres 2 Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 15: strFile = "Upresia.tga"; strLandName ="Upresia 1 Dungeon"; strDes= "Upresia ist ein Dungeon, der von vielen Pilzen umgeben ist."; break;
	case 16: strFile = "Upresia.tga"; strLandName ="Upresia 2 Dungeon"; strDes= "Upresia ist ein Dungeon, der von vielen Pilzen umgeben ist."; break;
	case 17: strFile = "Herneos.tga"; strLandName ="Herneos 1 Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 18: strFile = "Herneos.tga"; strLandName ="Herneos 2 Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 19: strFile = "Knochenpfad.tga"; strLandName ="Knochenpfad"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 20: strFile = "Crystal.tga"; strLandName ="Crystal Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 21: strFile = "Kalgas.tga"; strLandName ="Kalgas Dungeon"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	case 22: strFile = "Eillun.tga"; strLandName ="Eillun"; strDes= "Flaris ist die Stadt, in der jeder mal angefangen hat."; break;
	default: strFile = "flaris.tga"; strLandName ="Error"; strDes= "Error"; break;
	}
	pStatic->SetTitle( strLandName );
	pText->SetString( strDes, 0xFF1e90ff );
	m_pPicTexture = m_textureMng.AddTexture( m_pApp->m_pd3dDevice,  MakePath( "Theme\\Default\\LoadMap\\", strFile ), 0xff000000 );
	if( m_pPicTexture != NULL )
	{
		LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_STATIC1 );
		if( m_pPicTexture ) 
		{
			if( g_Option.m_nWindowAlpha > 200 )
				m_pPicTexture->Render( p2DRender, lpWndCtrl->rect.TopLeft(), g_Option.m_nWindowAlpha - 55 );
			else
				m_pPicTexture->Render( p2DRender, lpWndCtrl->rect.TopLeft(), g_Option.m_nWindowAlpha );
		}

	}
}
HRESULT CWndTeleporterNew::RestoreDeviceObjects()
{
    CWndNeuz::RestoreDeviceObjects();
    return S_OK;
}
HRESULT CWndTeleporterNew::InvalidateDeviceObjects()
{
    CWndNeuz::InvalidateDeviceObjects();
    return S_OK;
}
HRESULT CWndTeleporterNew::DeleteDeviceObjects()
{
    CWndNeuz::DeleteDeviceObjects();
    InvalidateDeviceObjects();
    return S_OK;
}
void CWndTeleporterNew::OnInitialUpdate( void )
{
    CWndNeuz::OnInitialUpdate();
    RestoreDeviceObjects();
    CRect rectRoot = m_pWndRoot->GetLayoutRect();
    CRect rectWindow = GetWindowRect();
    CPoint point( rectRoot.right - rectWindow.Width(), 110 );
    Move( point );
    MoveParentCenter();
	CWndListBox* pListBox = (CWndListBox*)GetDlgItem( WIDC_LISTBOX1 );
	pListBox->AddString("Flaris");
	pListBox->AddString("Saint Morning");
	pListBox->AddString("Darkon");
	pListBox->AddString("Darkon 1");
	pListBox->AddString("Darkon 3");
	pListBox->AddString("Vulcano");
	pListBox->AddString("Behemoth D.");
	pListBox->AddString("Amnius Hero");
	pListBox->AddString("Amnius Master");
	pListBox->AddString("Master Tramnuk");
	pListBox->AddString("Tramnuk");
	pListBox->AddString("Khaldera");
	pListBox->AddString("Bahara Desert");
	pListBox->AddString("Sanpres 1");
	pListBox->AddString("Sanpres 2");
	pListBox->AddString("Upresia 1");
	pListBox->AddString("Upresia 2");
	pListBox->AddString("Herneos 1");
	pListBox->AddString("Herneos 2");
	pListBox->AddString("Knochenpfad");
	pListBox->AddString("Crystal Dungeon");
	pListBox->AddString("Kalgas Cave");
	pListBox->AddString("Eillun");
}
BOOL CWndTeleporterNew::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
	if( nID == WIDC_LISTBOX1 )
	{
		CWndListBox* pWndListBox = (CWndListBox*)GetDlgItem( WIDC_LISTBOX1 );
		if( pWndListBox->GetCurSel() != -1 || pWndListBox->GetCurSel() > 22 )
			m_nSelected= pWndListBox->GetCurSel();

	}
	else if( nID == WIDC_BUTTON1 )
	{
		g_DPlay.SendTeleportNew( m_nSelected );
		Destroy();
	}
    return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
#endif
resdata.h
Code:
#define APP_TELEPORTER_NEW                   2505
resdata.inc
Code:
APP_TELEPORTER_NEW "WndTile08.tga" "" 1 640 464 0x2410000 26
{
// Title String
""
}
{
// Help Key
""
}
{
    WTYPE_LISTBOX WIDC_LISTBOX1 "WndEditTile00.tga" 1 40 22 194 346 0x20020000 0 0 0 0 46 112 169
    {
    // Title String
""
    }
    {
    // ToolTip
""
    }
    WTYPE_BUTTON WIDC_BUTTON1 "ButtApply.tga" 0 72 374 144 394 0x220010 0 0 0 0 46 112 169
    {
    // Title String
""
    }
    {
    // ToolTip
""
    }
    WTYPE_STATIC WIDC_STATIC1 "" 0 284 56 534 306 0x2220002 0 0 0 0 46 112 169
    {
    // Title String
""
    }
    {
    // ToolTip
""
    }
    WTYPE_TEXT WIDC_TEXT1 "WndEditTile00.tga" 1 268 328 568 404 0x20020000 0 0 0 0 46 112 169
    {
    // Title String
""
    }
    {
    // ToolTip
""
    }
    WTYPE_STATIC WIDC_STATIC2 "WndEditTile200.tga" 1 365 20 498 36 0x2222481 0 0 0 0 46 112 169
    {
    // Title String
""
    }
    {
    // ToolTip
""
    }

}
Neuz error log
Code:
2012/ 8/26   13:37:54   © Sunrise Flyff - Developed by Shonen rCnt=1

Neuz.exe caused an EXCEPTION_ACCESS_VIOLATION in module Neuz.exe at 0023:004D8C7E

 - Registers

EAX=00000000  EBX=7EFDE000  ECX=00000000  EDX=00000003  ESI=00000000
EDI=76831245  EBP=0018B518  ESP=0018B4C8  EIP=004D8C7E  FLG=00010206
CS=0023   DS=002B  SS=002B  ES=002B   FS=0053  GS=002B

0023:004D8C7E Neuz.exe
0023:005B16BA Neuz.exe
0023:004C2CE9 Neuz.exe
0023:004C3411 Neuz.exe
0023:004C2F3C Neuz.exe
0023:00609EB6 Neuz.exe
0023:0051079C Neuz.exe
0023:004C532F Neuz.exe
0023:0046F88B Neuz.exe
0023:0048F9E0 Neuz.exe
0023:0048F825 Neuz.exe
0023:0047668C Neuz.exe
0023:009290CC Neuz.exe
0023:7683339A kernel32.dll
0023:77279EF2 ntdll.dll
0023:77279EC5 ntdll.dll
beim compilen gibt es keine Warnings bezüglich dieses Systems und in Theme/Default/LoadMap ist ein datei namens flaris.tga vorhanden

mfg shonen