mirror of
				https://github.com/isledecomp/isle.git
				synced 2025-10-27 18:34:06 +00:00 
			
		
		
		
	 b996fff6fa
			
		
	
	b996fff6fa
	
	
	
		
			
			* cmake: detect older MSVC and define ENABLE_DECOMP_ASSERTS to enable decomp asserts * Add /Zc:__cplusplus to define __cplusplus with c++ version number * Silence deprecated CRT releated warnings * LegoCameraController overrids some methods that are not defined in its parent(s) * Tgl::Device::GetDrawnTriangleCount does not exist (FIXME: INCORRECT FIX -> Tgl::Device should be updated instead) * Remove copy/pasted APP_ICON from lego1 resource.h header * Implement empty ViewLODList::Dump method * Also enable "compat mode" for newer MSVC compilers * Only do decomp assertions when using older MSVC compilers * msys2 mingw compat (cannot pass reference of rvalue) * Fix msys2 mingw warning: declaration 'class Tgl::Group' does not declare anything * Add FIXME comment to LEgo3DView::m_previousRenderTime * LegoView1 is 16 bytes bigger then LegoView ==> 4 32-bit pointers * include string.h for strlen * Fix overrides * Fix constness of method * Fixes * Formatting * Add size assert for MxFrequencyMeter * ci: build isle with msys2 + msvc on GitHub actions * Set vcvars for msvc * msys2 needs the msys2 shell * Build in default shell * isle is not 64-bit yet (I think) * Print bitness * Use amd64_x64 cross tools * Minor updates * Add more names --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef LEGOPOINTOFVIEWCONTROLLER_H
 | |
| #define LEGOPOINTOFVIEWCONTROLLER_H
 | |
| 
 | |
| #include "decomp.h"
 | |
| #include "mxcore.h"
 | |
| #include "mxpoint32.h"
 | |
| 
 | |
| #include <windows.h>
 | |
| 
 | |
| class Lego3DView;
 | |
| class LegoEntity;
 | |
| class LegoNavController;
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////
 | |
| //
 | |
| // LegoMouseController
 | |
| 
 | |
| // VTABLE: LEGO1 0x100d8dd8
 | |
| // SIZE 0x20
 | |
| class LegoMouseController : public MxCore {
 | |
| public:
 | |
| 	LegoMouseController();
 | |
| 	virtual ~LegoMouseController() override;
 | |
| 
 | |
| 	virtual void LeftDown(int, int);  // vtable+0x14
 | |
| 	virtual void LeftDrag(int, int);  // vtable+0x18
 | |
| 	virtual void LeftUp(int, int);    // vtable+0x1c
 | |
| 	virtual void RightDown(int, int); // vtable+0x20
 | |
| 	virtual void RightDrag(int, int); // vtable+0x24
 | |
| 	virtual void RightUp(int, int);   // vtable+0x28
 | |
| 
 | |
| private:
 | |
| 	BOOL m_isButtonDown; // 0x08
 | |
| 	undefined4 m_unk0xc; // 0x0c
 | |
| 	MxDouble m_buttonX;  // 0x10
 | |
| 	MxDouble m_buttonY;  // 0x18
 | |
| };
 | |
| 
 | |
| // SYNTHETIC: LEGO1 0x100655b0
 | |
| // LegoMouseController::`scalar deleting destructor'
 | |
| 
 | |
| // VTABLE: LEGO1 0x100d8e08
 | |
| // SIZE 0x38
 | |
| class LegoPointOfViewController : public LegoMouseController {
 | |
| public:
 | |
| 	LegoPointOfViewController();
 | |
| 	virtual ~LegoPointOfViewController() override;
 | |
| 
 | |
| 	virtual MxResult Tickle() override;               // vtable+0x08
 | |
| 	virtual void LeftDown(int p_x, int p_y) override; // vtable+0x0c
 | |
| 	virtual void LeftDrag(int p_x, int p_y) override; // vtable+0x10
 | |
| 
 | |
| 	// FUNCTION: LEGO1 0x10011e40
 | |
| 	virtual void LeftUp(int p_x, int p_y) override
 | |
| 	{
 | |
| 		LegoMouseController::LeftUp(p_x, p_y);
 | |
| 		AffectPointOfView();
 | |
| 	}
 | |
| 	// vtable+0x14
 | |
| 
 | |
| 	// FUNCTION: LEGO1 0x10011e60
 | |
| 	virtual void RightDown(int p_x, int p_y) override
 | |
| 	{
 | |
| 		LegoMouseController::RightDown(p_x, p_y);
 | |
| 		AffectPointOfView();
 | |
| 	}
 | |
| 	// vtable+0x20
 | |
| 
 | |
| 	// FUNCTION: LEGO1 0x10011e80
 | |
| 	virtual void RightDrag(int p_x, int p_y) override
 | |
| 	{
 | |
| 		LegoMouseController::RightDrag(p_x, p_y);
 | |
| 		AffectPointOfView();
 | |
| 	}
 | |
| 	// vtable+0x24
 | |
| 
 | |
| 	// FUNCTION: LEGO1 0x10011ea0
 | |
| 	virtual void RightUp(int p_x, int p_y) override
 | |
| 	{
 | |
| 		LegoMouseController::RightUp(p_x, p_y);
 | |
| 		AffectPointOfView();
 | |
| 	}                                             // vtable+0x28
 | |
| 	virtual void SetEntity(LegoEntity* p_entity); // vtable+0x2c
 | |
| 
 | |
| 	MxResult Create(Lego3DView* p_lego3DView);
 | |
| 
 | |
| 	inline LegoEntity* GetEntity() { return m_entity; }
 | |
| 
 | |
| protected:
 | |
| 	void AffectPointOfView();
 | |
| 
 | |
| 	Lego3DView* m_lego3DView;  // 0x20
 | |
| 	LegoEntity* m_entity;      // 0x24
 | |
| 	MxDouble m_entityOffsetUp; // 0x28
 | |
| 	LegoNavController* m_nav;  // 0x30
 | |
| };
 | |
| 
 | |
| // SYNTHETIC: LEGO1 0x10065750
 | |
| // LegoPointOfViewController::`scalar deleting destructor'
 | |
| 
 | |
| #endif /* LEGOPOINTOFVIEWCONTROLLER_H */
 |