Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 88f99db867 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -51,5 +51,3 @@ log.txt
|
|||||||
G3DTest.suo
|
G3DTest.suo
|
||||||
G3DTest.suo
|
G3DTest.suo
|
||||||
stderr.txt
|
stderr.txt
|
||||||
desktop.ini
|
|
||||||
main.cpp
|
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef ACTIONTYPE_H
|
|
||||||
#define ACTIONTYPE_H
|
|
||||||
static enum ActionType {Nothing, Pause, Lose, Draw, Win};
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef AFFECTTYPE_H
|
|
||||||
#define AFFECTTYPE_H
|
|
||||||
static enum AffectType {NoChange, Increase, Decrease};
|
|
||||||
#endif
|
|
||||||
112
AudioPlayer.cpp
112
AudioPlayer.cpp
@@ -1,112 +0,0 @@
|
|||||||
#include "AudioPlayer.h"
|
|
||||||
#include "SDL.h"
|
|
||||||
#include "SDL_audio.h"
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <malloc.h>
|
|
||||||
#include <string.h>
|
|
||||||
#define NUM_SOUNDS 10
|
|
||||||
static SDL_AudioSpec fmt;
|
|
||||||
static bool initiated = false;
|
|
||||||
|
|
||||||
AudioPlayer::AudioPlayer(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
AudioPlayer::~AudioPlayer(void)
|
|
||||||
{
|
|
||||||
SDL_CloseAudio();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AudioPlayer::init()
|
|
||||||
{
|
|
||||||
initiated = true;
|
|
||||||
extern void mixaudio(void *unused, Uint8 *stream, int len);
|
|
||||||
fmt.freq = 22050;
|
|
||||||
fmt.format = AUDIO_S16;
|
|
||||||
fmt.channels = 2;
|
|
||||||
fmt.samples = 1024; /* A good value for games */
|
|
||||||
fmt.callback = mixaudio;
|
|
||||||
fmt.userdata = NULL;
|
|
||||||
|
|
||||||
/* Open the audio device and start playing sound! */
|
|
||||||
if ( SDL_OpenAudio(&fmt, NULL) < 0 ) {
|
|
||||||
fprintf(stderr, "Unable to open audio: %s\n", SDL_GetError());
|
|
||||||
}
|
|
||||||
SDL_PauseAudio(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct sample {
|
|
||||||
Uint8 *data;
|
|
||||||
Uint32 dpos;
|
|
||||||
Uint32 dlen;
|
|
||||||
} sounds[NUM_SOUNDS];
|
|
||||||
|
|
||||||
void mixaudio(void *unused, Uint8 *stream, int len)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
Uint32 amount;
|
|
||||||
|
|
||||||
for ( i=0; i<NUM_SOUNDS; ++i ) {
|
|
||||||
amount = (sounds[i].dlen-sounds[i].dpos);
|
|
||||||
if ( amount > (Uint32)len ) {
|
|
||||||
amount = len;
|
|
||||||
}
|
|
||||||
SDL_MixAudio(stream, &sounds[i].data[sounds[i].dpos], amount, SDL_MIX_MAXVOLUME);
|
|
||||||
sounds[i].dpos += amount;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AudioPlayer::playSound(std::string fileString)
|
|
||||||
{
|
|
||||||
|
|
||||||
if(initiated)
|
|
||||||
{
|
|
||||||
char *file = new char[fileString.length() + 1];
|
|
||||||
strcpy(file, fileString.c_str());
|
|
||||||
|
|
||||||
|
|
||||||
int index;
|
|
||||||
SDL_AudioSpec wave;
|
|
||||||
Uint8 *data;
|
|
||||||
Uint32 dlen;
|
|
||||||
SDL_AudioCVT cvt;
|
|
||||||
|
|
||||||
/* Look for an empty (or finished) sound slot */
|
|
||||||
for ( index=0; index<NUM_SOUNDS; ++index ) {
|
|
||||||
if ( sounds[index].dpos == sounds[index].dlen ) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( index == NUM_SOUNDS )
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Load the sound file and convert it to 16-bit stereo at 22kHz */
|
|
||||||
if ( SDL_LoadWAV(file, &wave, &data, &dlen) == NULL ) {
|
|
||||||
fprintf(stderr, "Couldn't load %s: %s\n", file, SDL_GetError());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
SDL_BuildAudioCVT(&cvt, wave.format, wave.channels, wave.freq,
|
|
||||||
AUDIO_S16, 2, fmt.freq);
|
|
||||||
cvt.buf = (Uint8*)malloc(dlen*cvt.len_mult);
|
|
||||||
memcpy(cvt.buf, data, dlen);
|
|
||||||
cvt.len = dlen;
|
|
||||||
SDL_ConvertAudio(&cvt);
|
|
||||||
SDL_FreeWAV(data);
|
|
||||||
|
|
||||||
/* Put the sound data in the slot (it starts playing immediately) */
|
|
||||||
if ( sounds[index].data ) {
|
|
||||||
free(sounds[index].data);
|
|
||||||
}
|
|
||||||
SDL_LockAudio();
|
|
||||||
sounds[index].data = cvt.buf;
|
|
||||||
sounds[index].dlen = cvt.len_cvt;
|
|
||||||
sounds[index].dpos = 0;
|
|
||||||
SDL_UnlockAudio();
|
|
||||||
delete [] file;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
OutputDebugString("Audio player not initialized, sound will not play\r\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#include <G3DAll.h>
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
class AudioPlayer
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
AudioPlayer(void);
|
|
||||||
~AudioPlayer(void);
|
|
||||||
static void playSound(std::string);
|
|
||||||
static void init();
|
|
||||||
};
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
#include "BaseButtonInstance.h"
|
|
||||||
#include "Globals.h"
|
|
||||||
|
|
||||||
bool floatBottom = false;
|
|
||||||
bool floatRight = false;
|
|
||||||
bool floatCenter = false;
|
|
||||||
bool disabled = false;
|
|
||||||
bool selected = false;
|
|
||||||
ButtonListener* listener = NULL;
|
|
||||||
|
|
||||||
BaseButtonInstance::BaseButtonInstance(void)
|
|
||||||
{
|
|
||||||
listener = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void BaseButtonInstance::render(RenderDevice* rd)
|
|
||||||
{
|
|
||||||
DataModelInstance* dataModel = Globals::dataModel;
|
|
||||||
Vector2 pos = Vector2(dataModel->mousex,dataModel->mousey);
|
|
||||||
drawObj(rd, pos, dataModel->mouseButton1Down);
|
|
||||||
Instance::render(rd);
|
|
||||||
}
|
|
||||||
|
|
||||||
BaseButtonInstance::~BaseButtonInstance(void)
|
|
||||||
{
|
|
||||||
delete listener;
|
|
||||||
}
|
|
||||||
|
|
||||||
void BaseButtonInstance::setButtonListener(ButtonListener* buttonListener)
|
|
||||||
{
|
|
||||||
listener = buttonListener;
|
|
||||||
}
|
|
||||||
|
|
||||||
void BaseButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown){}
|
|
||||||
|
|
||||||
bool BaseButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd){return false;}
|
|
||||||
|
|
||||||
void BaseButtonInstance::onMouseClick()
|
|
||||||
{
|
|
||||||
if(listener != NULL)
|
|
||||||
{
|
|
||||||
listener->onButton1MouseClick(this);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool BaseButtonInstance::mouseInArea(float point1x, float point1y, float point2x, float point2y, float mousex, float mousey)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
if(mousex >= point1x && mousey >= point1y)
|
|
||||||
{
|
|
||||||
if(mousex < point2x && mousey < point2y)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "instance.h"
|
|
||||||
#pragma once
|
|
||||||
#include "ButtonListener.h"
|
|
||||||
class ButtonListener;
|
|
||||||
class BaseButtonInstance : public Instance
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BaseButtonInstance(void);
|
|
||||||
virtual ~BaseButtonInstance(void);
|
|
||||||
virtual void render(RenderDevice* rd);
|
|
||||||
virtual void drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown);
|
|
||||||
virtual bool mouseInButton(float, float, RenderDevice* rd);
|
|
||||||
virtual void onMouseClick();
|
|
||||||
void setButtonListener(ButtonListener*);
|
|
||||||
bool floatBottom;
|
|
||||||
bool floatRight;
|
|
||||||
bool floatCenter;
|
|
||||||
bool disabled;
|
|
||||||
bool selected;
|
|
||||||
protected:
|
|
||||||
bool mouseInArea(float, float, float, float, float, float);
|
|
||||||
class ButtonListener* listener;
|
|
||||||
};
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef BINTYPE_H
|
|
||||||
#define BINTYPE_H
|
|
||||||
static enum ActionType {GameTool, Grab, Clone, Hammer};
|
|
||||||
#endif
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#include "BrowserCallHandler.h"
|
|
||||||
|
|
||||||
BrowserCallHandler::BrowserCallHandler(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
BrowserCallHandler::~BrowserCallHandler(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include <Mshtmhst.h>
|
|
||||||
class BrowserCallHandler : IDocHostUIHandler
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BrowserCallHandler(void);
|
|
||||||
~BrowserCallHandler(void);
|
|
||||||
};
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
#include "ButtonListener.h"
|
|
||||||
|
|
||||||
|
|
||||||
ButtonListener::ButtonListener()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
ButtonListener::~ButtonListener(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void ButtonListener::onButton1MouseClick(BaseButtonInstance* button)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "Demo.h"
|
|
||||||
#include "BaseButtonInstance.h"
|
|
||||||
class BaseButtonInstance;
|
|
||||||
|
|
||||||
class ButtonListener
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ButtonListener();
|
|
||||||
~ButtonListener(void);
|
|
||||||
virtual void onButton1MouseClick(BaseButtonInstance*);
|
|
||||||
//virtual void onMouseOver(); //TODO
|
|
||||||
//virtual void onMouseOut(); //TODO
|
|
||||||
//virtual void onButton1MouseDown(); //TODO
|
|
||||||
//virtual void onButton1MouseUp(); //TODO
|
|
||||||
//virtual void onButton2MouseClick(); //TODO
|
|
||||||
//virtual void onButton2MouseDown(); //TODO
|
|
||||||
//virtual void onButton2MouseUp(); //TODO
|
|
||||||
//What to do now...
|
|
||||||
};
|
|
||||||
@@ -1,231 +0,0 @@
|
|||||||
#include "CameraController.h"
|
|
||||||
#include "win32Defines.h"
|
|
||||||
#include <iostream>
|
|
||||||
#include "PhysicalInstance.h"
|
|
||||||
#include "Demo.h"
|
|
||||||
#include "AudioPlayer.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CameraController::CameraController(){
|
|
||||||
yaw=0;
|
|
||||||
pitch=0;
|
|
||||||
moveRate=0.5f;
|
|
||||||
forwards=false;
|
|
||||||
backwards=false;
|
|
||||||
left=false;
|
|
||||||
right=false;
|
|
||||||
zoom=7.f;
|
|
||||||
rightButtonHolding=false;
|
|
||||||
focusPosition=Vector3(0,0,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
GCamera* CameraController::getCamera()
|
|
||||||
{
|
|
||||||
return &g3dCamera;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraController::lookAt(const Vector3& position) {
|
|
||||||
const Vector3 look = (position - g3dCamera.getCoordinateFrame().translation);
|
|
||||||
yaw = aTan2(look.x, -look.z);
|
|
||||||
|
|
||||||
pitch = -aTan2(look.y, distance(look.x, look.z));
|
|
||||||
CoordinateFrame frame = g3dCamera.getCoordinateFrame().translation;
|
|
||||||
frame.rotation = Matrix3::fromEulerAnglesZYX(0, -yaw, -pitch);
|
|
||||||
g3dCamera.setCoordinateFrame(frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraController::setFrame(const CoordinateFrame& cf) {
|
|
||||||
Vector3 look = cf.getLookVector();
|
|
||||||
g3dCamera.setCoordinateFrame(cf);
|
|
||||||
lookAt(cf.translation + look);
|
|
||||||
focusPosition=cf.translation+cf.lookVector()*zoom;
|
|
||||||
}
|
|
||||||
|
|
||||||
CoordinateFrame CameraController::getCoordinateFrame() {
|
|
||||||
CoordinateFrame cf;
|
|
||||||
cf.translation=translation;
|
|
||||||
cf.rotation = Matrix3::fromEulerAnglesZYX(0, -yaw, -pitch);
|
|
||||||
return cf;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraController::refreshZoom(const CoordinateFrame& frame)
|
|
||||||
{
|
|
||||||
CoordinateFrame zoomFrame = focusPosition-frame.lookVector()*zoom;
|
|
||||||
zoomFrame.lookAt(focusPosition);
|
|
||||||
setFrame(zoomFrame);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraController::pan(CoordinateFrame* frame,float spdX, float spdY)
|
|
||||||
{
|
|
||||||
yaw+=spdX;
|
|
||||||
pitch+=spdY;
|
|
||||||
|
|
||||||
if (pitch>1.4f) pitch=1.4f;
|
|
||||||
if (pitch<-1.4f) pitch=-1.4f;
|
|
||||||
frame->translation = Vector3(sin(-yaw)*zoom*cos(pitch),sin(pitch)*zoom,cos(-yaw)*zoom*cos(pitch))+focusPosition;
|
|
||||||
frame->lookAt(focusPosition);
|
|
||||||
}
|
|
||||||
bool CameraController::onMouseWheel(int x, int y, short delta)
|
|
||||||
{
|
|
||||||
Zoom(delta);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
void CameraController::Zoom(short delta)
|
|
||||||
{
|
|
||||||
CoordinateFrame frame = g3dCamera.getCoordinateFrame();
|
|
||||||
|
|
||||||
if (delta>0) { // Mouse wheel up
|
|
||||||
CoordinateFrame zoomFrame = frame+frame.lookVector()*(zoom/5);
|
|
||||||
zoom=(zoomFrame.translation-focusPosition).magnitude();
|
|
||||||
if (zoom>CAM_ZOOM_MIN)
|
|
||||||
{
|
|
||||||
setFrame(zoomFrame);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
zoom=CAM_ZOOM_MIN;
|
|
||||||
refreshZoom(frame);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
CoordinateFrame zoomFrame = frame-frame.lookVector()*(zoom/5);
|
|
||||||
zoom=(zoomFrame.translation-focusPosition).magnitude();
|
|
||||||
if (zoom<CAM_ZOOM_MAX)
|
|
||||||
{
|
|
||||||
setFrame(zoomFrame);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
zoom=CAM_ZOOM_MAX;
|
|
||||||
refreshZoom(frame);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraController::panLeft()
|
|
||||||
{
|
|
||||||
CoordinateFrame frame = g3dCamera.getCoordinateFrame();
|
|
||||||
pan(&frame,toRadians(-45),0);
|
|
||||||
setFrame(frame);
|
|
||||||
|
|
||||||
}
|
|
||||||
void CameraController::panRight()
|
|
||||||
{
|
|
||||||
CoordinateFrame frame = g3dCamera.getCoordinateFrame();
|
|
||||||
pan(&frame,toRadians(45),0);
|
|
||||||
setFrame(frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraController::tiltUp()
|
|
||||||
{
|
|
||||||
|
|
||||||
CoordinateFrame frame = CoordinateFrame(g3dCamera.getCoordinateFrame().rotation, g3dCamera.getCoordinateFrame().translation);
|
|
||||||
pan(&frame,0,toRadians(25));
|
|
||||||
setFrame(frame);
|
|
||||||
}
|
|
||||||
void CameraController::tiltDown()
|
|
||||||
{
|
|
||||||
CoordinateFrame frame = CoordinateFrame(g3dCamera.getCoordinateFrame().rotation, g3dCamera.getCoordinateFrame().translation);
|
|
||||||
pan(&frame,0,toRadians(-25));
|
|
||||||
setFrame(frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraController::centerCamera(Instance* selection)
|
|
||||||
{
|
|
||||||
CoordinateFrame frame = CoordinateFrame(g3dCamera.getCoordinateFrame().translation);
|
|
||||||
if(selection == NULL)
|
|
||||||
{
|
|
||||||
lookAt(Vector3(0,0,0));
|
|
||||||
focusPosition=Vector3(0,0,0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Vector3 partPos = ((PhysicalInstance*)selection)->getPosition()/2;
|
|
||||||
lookAt(partPos);
|
|
||||||
focusPosition=partPos;
|
|
||||||
zoom=((partPos-frame.translation).magnitude());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CameraController::update(Demo* demo)
|
|
||||||
{
|
|
||||||
float offsetSize = 0.05F;
|
|
||||||
|
|
||||||
Vector3 cameraPos = g3dCamera.getCoordinateFrame().translation;
|
|
||||||
CoordinateFrame frame = g3dCamera.getCoordinateFrame();
|
|
||||||
bool moving=false;
|
|
||||||
if(GetHoldKeyState('U')) {
|
|
||||||
forwards = true;
|
|
||||||
moving=true;
|
|
||||||
}
|
|
||||||
if(GetHoldKeyState('J')) {
|
|
||||||
backwards = true;
|
|
||||||
moving=true;
|
|
||||||
}
|
|
||||||
if(GetHoldKeyState('H')) {
|
|
||||||
left = true;
|
|
||||||
moving=true;
|
|
||||||
}
|
|
||||||
if(GetHoldKeyState('K')) {
|
|
||||||
right = true;
|
|
||||||
moving=true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(forwards) {
|
|
||||||
forwards = false;
|
|
||||||
frame.translation += frame.lookVector()*moveRate;
|
|
||||||
}
|
|
||||||
else if(backwards) {
|
|
||||||
backwards = false;
|
|
||||||
frame.translation -= frame.lookVector()*moveRate;
|
|
||||||
}
|
|
||||||
if(left) {
|
|
||||||
left = false;
|
|
||||||
frame.translation += frame.leftVector()*moveRate;
|
|
||||||
}
|
|
||||||
else if(right) {
|
|
||||||
right = false;
|
|
||||||
frame.translation += frame.rightVector()*moveRate;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (moving)
|
|
||||||
{
|
|
||||||
zoom=7;
|
|
||||||
focusPosition=frame.translation+frame.lookVector()*zoom;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(rightButtonHolding) {
|
|
||||||
Globals::useMousePoint = true;
|
|
||||||
Globals::mousepoint = oldDesktopMouse;
|
|
||||||
POINT mouse;
|
|
||||||
GetCursorPos(&mouse);
|
|
||||||
pan(&frame,(mouse.x-oldDesktopMouse.x)/100.f,(mouse.y-oldDesktopMouse.y)/100.f);
|
|
||||||
SetCursorPos(oldDesktopMouse.x,oldDesktopMouse.y);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Globals::useMousePoint = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(GetHoldKeyState(VK_RSHIFT) || GetHoldKeyState(VK_LSHIFT)) {
|
|
||||||
moveRate = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
moveRate = 0.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(GetHoldKeyState(VK_RBUTTON))
|
|
||||||
{
|
|
||||||
if (rightButtonHolding==false)
|
|
||||||
{
|
|
||||||
GetCursorPos(&oldDesktopMouse);
|
|
||||||
rightButtonHolding = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rightButtonHolding = false;
|
|
||||||
}
|
|
||||||
g3dCamera.setCoordinateFrame(frame);
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <G3DAll.h>
|
|
||||||
#include "Instance.h"
|
|
||||||
#include "Globals.h"
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#define CAM_ZOOM_MIN 0.1f
|
|
||||||
#define CAM_ZOOM_MAX 100.f
|
|
||||||
|
|
||||||
class Demo;
|
|
||||||
|
|
||||||
class CameraController {
|
|
||||||
public:
|
|
||||||
CameraController();
|
|
||||||
G3D::CoordinateFrame getCoordinateFrame();
|
|
||||||
|
|
||||||
void setFrame(const CoordinateFrame& cf);
|
|
||||||
void lookAt(const Vector3& position);
|
|
||||||
void refreshZoom(const CoordinateFrame& frame);
|
|
||||||
void pan(CoordinateFrame* frame,float spdX,float spdY);
|
|
||||||
void update(Demo* demo);
|
|
||||||
void centerCamera(Instance* selection);
|
|
||||||
void panLeft();
|
|
||||||
void panRight();
|
|
||||||
void tiltUp();
|
|
||||||
void tiltDown();
|
|
||||||
void Zoom(short delta);
|
|
||||||
bool onMouseWheel(int x, int y, short delta);
|
|
||||||
GCamera* getCamera();
|
|
||||||
private:
|
|
||||||
Vector3 translation;
|
|
||||||
Vector3 focusPosition;
|
|
||||||
float yaw;
|
|
||||||
float pitch;
|
|
||||||
float moveRate;
|
|
||||||
float zoom;
|
|
||||||
bool forwards;
|
|
||||||
bool backwards;
|
|
||||||
bool left;
|
|
||||||
bool right;
|
|
||||||
bool rightButtonHolding;
|
|
||||||
POINT oldDesktopMouse;
|
|
||||||
GCamera g3dCamera;
|
|
||||||
std::string cameraSound;
|
|
||||||
};
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef CONTROLLERTYPE_H
|
|
||||||
#define CONTROLLERTYPE_H
|
|
||||||
static enum ControllerType {None, KeyboardRight, KeyboardLeft, Joypad1, Joypad2, Chase, Flee};
|
|
||||||
#endif
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
#include "DataModelInstance.h"
|
|
||||||
|
|
||||||
|
|
||||||
WorkspaceInstance* workspace;
|
|
||||||
Instance* guiRoot;
|
|
||||||
float mousex;
|
|
||||||
float mousey;
|
|
||||||
bool mouseButton1Down;
|
|
||||||
std::string message;
|
|
||||||
bool showMessage;
|
|
||||||
G3D::GFontRef font;
|
|
||||||
|
|
||||||
|
|
||||||
DataModelInstance::DataModelInstance(void)
|
|
||||||
{
|
|
||||||
workspace = new WorkspaceInstance();
|
|
||||||
guiRoot = new Instance();
|
|
||||||
children.push_back(workspace);
|
|
||||||
className = "dataModel";
|
|
||||||
mousex = 0;
|
|
||||||
mousey = 0;
|
|
||||||
mouseButton1Down = false;
|
|
||||||
showMessage = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
DataModelInstance::~DataModelInstance(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void DataModelInstance::setMessage(std::string msg)
|
|
||||||
{
|
|
||||||
message = msg;
|
|
||||||
showMessage = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DataModelInstance::clearMessage()
|
|
||||||
{
|
|
||||||
showMessage = false;
|
|
||||||
message = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
void DataModelInstance::drawMessage(RenderDevice* rd)
|
|
||||||
{
|
|
||||||
if(showMessage && !font.isNull())
|
|
||||||
{
|
|
||||||
int x = rd->getWidth()/2;
|
|
||||||
int y = rd->getHeight()/2;
|
|
||||||
int width = rd->getWidth()/2 + 100;
|
|
||||||
int height = width / 3;
|
|
||||||
Draw::box(Box(Vector3(x-(width/2), y-(height/2), 0), Vector3(x+(width/2), y+(height/2), 0)), rd, Color4::fromARGB(0x55B2B2B2), Color3::fromARGB(0xB2B2B2));
|
|
||||||
font->draw2D(rd, message, Vector2(x,y), height/8, Color3::white(), Color4::clear(), GFont::XALIGN_CENTER, GFont::YALIGN_CENTER);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
WorkspaceInstance* DataModelInstance::getWorkspace()
|
|
||||||
{
|
|
||||||
return workspace;
|
|
||||||
}
|
|
||||||
Vector2 DataModelInstance::getMousePos()
|
|
||||||
{
|
|
||||||
return Vector2(mousex,mousey);
|
|
||||||
}
|
|
||||||
void DataModelInstance::setMousePos(int x,int y)
|
|
||||||
{
|
|
||||||
mousex=x;
|
|
||||||
mousey=y;
|
|
||||||
}
|
|
||||||
void DataModelInstance::setMousePos(Vector2 pos)
|
|
||||||
{
|
|
||||||
mousex=pos.x;
|
|
||||||
mousey=pos.y;
|
|
||||||
}
|
|
||||||
Instance* DataModelInstance::getGuiRoot()
|
|
||||||
{
|
|
||||||
return guiRoot;
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "instance.h"
|
|
||||||
#include "WorkspaceInstance.h"
|
|
||||||
|
|
||||||
class DataModelInstance :
|
|
||||||
public Instance
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
DataModelInstance(void);
|
|
||||||
~DataModelInstance(void);
|
|
||||||
void setMessage(std::string);
|
|
||||||
void clearMessage();
|
|
||||||
void drawMessage(RenderDevice*);
|
|
||||||
GFontRef font;
|
|
||||||
WorkspaceInstance* getWorkspace();
|
|
||||||
Instance* getGuiRoot();
|
|
||||||
float mousex;
|
|
||||||
float mousey;
|
|
||||||
Vector2 getMousePos();
|
|
||||||
void setMousePos(int x,int y);
|
|
||||||
void setMousePos(Vector2 pos);
|
|
||||||
bool mouseButton1Down;
|
|
||||||
};
|
|
||||||
57
Demo.h
57
Demo.h
@@ -1,57 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include <G3DAll.h>
|
|
||||||
#include "CameraController.h"
|
|
||||||
#include "PropertyWindow.h"
|
|
||||||
|
|
||||||
class Demo { // : public GApp {
|
|
||||||
public:
|
|
||||||
Demo(const GAppSettings& settings,HWND parentWindow);
|
|
||||||
void Boop();
|
|
||||||
virtual ~Demo() {}
|
|
||||||
virtual void exitApplication();
|
|
||||||
virtual void onInit();
|
|
||||||
virtual void onLogic();
|
|
||||||
virtual void onNetwork();
|
|
||||||
virtual void onSimulation(RealTime rdt, SimTime sdt, SimTime idt);
|
|
||||||
virtual void onGraphics(RenderDevice* rd);
|
|
||||||
virtual void onUserInput(UserInput* ui);
|
|
||||||
virtual void onCleanup();
|
|
||||||
|
|
||||||
std::vector<Instance*> getSelection();
|
|
||||||
void run();
|
|
||||||
void QuitApp();
|
|
||||||
void resizeWithParent(HWND parentWindow);
|
|
||||||
void onCreate(HWND parentWindow);
|
|
||||||
void onKeyPressed(int key);
|
|
||||||
void onKeyUp(int key);
|
|
||||||
void onMouseLeftPressed(HWND hwnd,int x, int y);
|
|
||||||
void onMouseLeftUp(int x, int y);
|
|
||||||
void onMouseRightPressed(int x, int y);
|
|
||||||
void onMouseRightUp(int x, int y);
|
|
||||||
void onMouseMoved(int x, int y);
|
|
||||||
void onMouseWheel(int x, int y, short delta);
|
|
||||||
|
|
||||||
CameraController cameraController;
|
|
||||||
RenderDevice* renderDevice;
|
|
||||||
UserInput* userInput;
|
|
||||||
private:
|
|
||||||
void initGUI();
|
|
||||||
HWND _hWndMain;
|
|
||||||
SkyRef sky;
|
|
||||||
bool quit;
|
|
||||||
bool mouseOnScreen;
|
|
||||||
bool rightButtonHolding;
|
|
||||||
void main();
|
|
||||||
GWindow* _window;
|
|
||||||
HWND _hwndToolbox;
|
|
||||||
HWND _buttonTest;
|
|
||||||
HWND _hwndRenderer;
|
|
||||||
PropertyWindow* _propWindow;
|
|
||||||
protected:
|
|
||||||
Stopwatch m_graphicsWatch;
|
|
||||||
Stopwatch m_logicWatch;
|
|
||||||
Stopwatch m_networkWatch;
|
|
||||||
Stopwatch m_userInputWatch;
|
|
||||||
Stopwatch m_simulationWatch;
|
|
||||||
Stopwatch m_waitWatch;
|
|
||||||
};
|
|
||||||
BIN
Dialogs.aps
BIN
Dialogs.aps
Binary file not shown.
37
Dialogs.rc
37
Dialogs.rc
@@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
// Generated from the TEXTINCLUDE 2 resource.
|
||||||
//
|
//
|
||||||
#include "windows.h"
|
#include "afxres.h"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
#undef APSTUDIO_READONLY_SYMBOLS
|
||||||
@@ -34,7 +34,7 @@ END
|
|||||||
|
|
||||||
2 TEXTINCLUDE
|
2 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"#include ""windows.h""\r\n"
|
"#include ""afxres.h""\r\n"
|
||||||
"\0"
|
"\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
@@ -61,12 +61,37 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
|
|||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Icon
|
// Dialog
|
||||||
//
|
//
|
||||||
|
|
||||||
// Icon with lowest ID value placed first to ensure application icon
|
IDD_ABOUT_DIALOG DIALOGEX 0, 0, 226, 151
|
||||||
// remains consistent on all systems.
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
IDI_ICON1 ICON "icon1.ico"
|
CAPTION "About"
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
DEFPUSHBUTTON "OK",IDOK,169,130,50,14
|
||||||
|
PUSHBUTTON "Cancel",IDCANCEL,112,130,50,14
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// DESIGNINFO
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef APSTUDIO_INVOKED
|
||||||
|
GUIDELINES DESIGNINFO
|
||||||
|
BEGIN
|
||||||
|
IDD_ABOUT_DIALOG, DIALOG
|
||||||
|
BEGIN
|
||||||
|
LEFTMARGIN, 7
|
||||||
|
RIGHTMARGIN, 219
|
||||||
|
TOPMARGIN, 7
|
||||||
|
BOTTOMMARGIN, 144
|
||||||
|
END
|
||||||
|
END
|
||||||
|
#endif // APSTUDIO_INVOKED
|
||||||
|
|
||||||
#endif // English (Canada) resources
|
#endif // English (Canada) resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
BIN
G3DTest.aps
BIN
G3DTest.aps
Binary file not shown.
BIN
G3DTest.suo
Normal file
BIN
G3DTest.suo
Normal file
Binary file not shown.
220
G3DTest.vcproj
220
G3DTest.vcproj
@@ -21,7 +21,6 @@
|
|||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
UseOfATL="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="2"
|
CharacterSet="2"
|
||||||
>
|
>
|
||||||
@@ -52,7 +51,7 @@
|
|||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\Release/G3DTest.pch"
|
PrecompiledHeaderFile=".\Release/G3DTest.pch"
|
||||||
AssemblerListingLocation=".\Release/"
|
AssemblerListingLocation=".\Release/"
|
||||||
@@ -74,8 +73,7 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib"
|
OutputFile=".\Release/G3DTest.exe"
|
||||||
OutputFile="./G3DTest.exe"
|
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
ProgramDatabaseFile=".\Release/G3DTest.pdb"
|
ProgramDatabaseFile=".\Release/G3DTest.pdb"
|
||||||
@@ -148,7 +146,6 @@
|
|||||||
MinimalRebuild="false"
|
MinimalRebuild="false"
|
||||||
BasicRuntimeChecks="0"
|
BasicRuntimeChecks="0"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
|
||||||
PrecompiledHeaderFile=".\Debug/G3DTest.pch"
|
PrecompiledHeaderFile=".\Debug/G3DTest.pch"
|
||||||
AssemblerListingLocation=".\Debug/"
|
AssemblerListingLocation=".\Debug/"
|
||||||
ObjectFile=".\Debug/"
|
ObjectFile=".\Debug/"
|
||||||
@@ -170,8 +167,7 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib Comdlg32.lib Shell32.lib"
|
OutputFile=".\Debug/G3DTest.exe"
|
||||||
OutputFile="./G3DTest-Debug.exe"
|
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
@@ -235,39 +231,11 @@
|
|||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\AudioPlayer.cpp"
|
RelativePath=".\Dialogs.rc"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\ax.cpp"
|
RelativePath=".\Instance.cpp"
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\BrowserCallHandler.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ButtonListener.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\CameraController.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Globals.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\IEBrowser.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\IEBrowser.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\IEDispatcher.cpp"
|
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
@@ -291,205 +259,33 @@
|
|||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\propertyGrid.cpp"
|
RelativePath=".\PhysicalInstance.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\PropertyWindow.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\WindowFunctions.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<Filter
|
|
||||||
Name="Instance"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\BaseButtonInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\DataModelInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ImageButtonInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Instance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PhysicalInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\TextButtonInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\WorkspaceInstance.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl"
|
Filter="h;hpp;hxx;hm;inl"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\ActionType.h"
|
RelativePath=".\Instance.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\AffectType.h"
|
RelativePath=".\PhysicalInstance.h"
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\AudioPlayer.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ax.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\BinType.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\BrowserCallHandler.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ButtonListener.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\CameraController.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ControllerType.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Demo.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Globals.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\IEDispatcher.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\InputType.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\JointType.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\KeywordFilterType.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PartType.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\propertyGrid.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PropertyWindow.h"
|
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\resource.h"
|
RelativePath=".\resource.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\SoundType.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Surface.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\SurfaceConstraint.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\SurfaceType.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\win32Defines.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\WindowFunctions.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<Filter
|
|
||||||
Name="Instance"
|
|
||||||
>
|
|
||||||
<File
|
|
||||||
RelativePath=".\BaseButtonInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\DataModelInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\ImageButtonInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\Instance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\PhysicalInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\TextButtonInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\WorkspaceInstance.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||||
>
|
>
|
||||||
<File
|
|
||||||
RelativePath=".\Dialogs.rc"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath=".\icon1.ico"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
<Global
|
|
||||||
Name="RESOURCE_FILE"
|
|
||||||
Value="Dialogs.rc"
|
|
||||||
/>
|
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|||||||
19
Globals.cpp
19
Globals.cpp
@@ -1,19 +0,0 @@
|
|||||||
#include "Globals.h"
|
|
||||||
|
|
||||||
DataModelInstance* Globals::dataModel = NULL;
|
|
||||||
int const Globals::gen = 0;
|
|
||||||
int const Globals::major = 0;
|
|
||||||
int const Globals::minor = 4;
|
|
||||||
int const Globals::patch = 2;
|
|
||||||
int Globals::surfaceId = 2;
|
|
||||||
bool Globals::showMouse = true;
|
|
||||||
bool Globals::useMousePoint = false;
|
|
||||||
|
|
||||||
const std::string Globals::PlaceholderName = "Dynamica";
|
|
||||||
|
|
||||||
|
|
||||||
G3D::TextureRef Globals::surface;
|
|
||||||
POINT Globals::mousepoint;
|
|
||||||
Globals::Globals(void){}
|
|
||||||
|
|
||||||
Globals::~Globals(void){}
|
|
||||||
21
Globals.h
21
Globals.h
@@ -1,21 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "DataModelInstance.h"
|
|
||||||
#include <G3DAll.h>
|
|
||||||
|
|
||||||
class Globals
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Globals(void);
|
|
||||||
~Globals(void);
|
|
||||||
static DataModelInstance* dataModel;
|
|
||||||
static bool showMouse;
|
|
||||||
static POINT mousepoint;
|
|
||||||
static bool useMousePoint;
|
|
||||||
static const int gen;
|
|
||||||
static const int major;
|
|
||||||
static const int minor;
|
|
||||||
static const int patch;
|
|
||||||
static G3D::TextureRef surface;
|
|
||||||
static int surfaceId;
|
|
||||||
static const std::string PlaceholderName;
|
|
||||||
};
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
#ifndef WIN32_LEAN_AND_MEAN
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#include "IEBrowser.h"
|
|
||||||
#include "Globals.h"
|
|
||||||
#include "ax.h"
|
|
||||||
|
|
||||||
void IEBrowser::Boop(char* test)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
IEBrowser::IEBrowser(HWND attachHWnd) {
|
|
||||||
MSG messages;
|
|
||||||
while (PeekMessage (&messages, NULL, 0, 0,PM_REMOVE))
|
|
||||||
{
|
|
||||||
if (IsDialogMessage(hwnd, &messages) == 0)
|
|
||||||
{
|
|
||||||
TranslateMessage(&messages);
|
|
||||||
DispatchMessage(&messages);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
hwnd = attachHWnd;
|
|
||||||
spDocument = 0;
|
|
||||||
webBrowser = 0;
|
|
||||||
SendMessage(hwnd,AX_INPLACE,1,0);
|
|
||||||
SendMessage(hwnd,AX_QUERYINTERFACE,(WPARAM)&IID_IWebBrowser2,(LPARAM)&webBrowser);
|
|
||||||
}
|
|
||||||
|
|
||||||
IEBrowser::~IEBrowser(void) {
|
|
||||||
if (webBrowser)
|
|
||||||
{
|
|
||||||
webBrowser->Release();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IEBrowser::navigateSyncURL(wchar_t* url)
|
|
||||||
{
|
|
||||||
MSG messages;
|
|
||||||
if (webBrowser)
|
|
||||||
{
|
|
||||||
webBrowser->Navigate(url,0,0,0,0);
|
|
||||||
for (int i=1;i<1000;i++)
|
|
||||||
{
|
|
||||||
while (PeekMessage (&messages, NULL, 0, 0,PM_REMOVE))
|
|
||||||
{
|
|
||||||
if (IsDialogMessage(hwnd, &messages) == 0)
|
|
||||||
{
|
|
||||||
TranslateMessage(&messages);
|
|
||||||
DispatchMessage(&messages);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Sleep(30);
|
|
||||||
HRESULT hresult = webBrowser->get_Document(&spDocument);
|
|
||||||
if (&spDocument!=0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MessageBox(NULL,"Cannot read IWebBrowser2...",(Globals::PlaceholderName+" Crash").c_str(),MB_OK);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
16
IEBrowser.h
16
IEBrowser.h
@@ -1,16 +0,0 @@
|
|||||||
//#include "WindowFunctions.h"
|
|
||||||
#include <mshtml.h>
|
|
||||||
#include <exdisp.h>
|
|
||||||
//#include <Mshtmhst.h>
|
|
||||||
|
|
||||||
class IEBrowser {
|
|
||||||
public:
|
|
||||||
IEBrowser(HWND attachHWnd);
|
|
||||||
~IEBrowser(void);
|
|
||||||
bool navigateSyncURL(wchar_t* url);
|
|
||||||
void Boop(char* test);
|
|
||||||
private:
|
|
||||||
IWebBrowser2* webBrowser;
|
|
||||||
HWND hwnd;
|
|
||||||
IDispatch* spDocument;
|
|
||||||
};
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
#include "IEDispatcher.h"
|
|
||||||
|
|
||||||
IEDispatcher::IEDispatcher(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
IEDispatcher::~IEDispatcher(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::QueryInterface(const IID &riid, void **ppvObject)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
ULONG STDMETHODCALLTYPE IEDispatcher::AddRef()
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
ULONG STDMETHODCALLTYPE IEDispatcher::Release()
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::GetTypeInfoCount(UINT *pctinfo)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::GetTypeInfo(UINT, LCID, ITypeInfo **)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::GetIDsOfNames(const IID &, LPOLESTR *, UINT, LCID, DISPID *)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::Invoke(DISPID, const IID &, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *)
|
|
||||||
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "oaidl.h"
|
|
||||||
|
|
||||||
class IEDispatcher : public IDispatch
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
IEDispatcher(void);
|
|
||||||
~IEDispatcher(void);
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::QueryInterface(const IID &riid, void **ppvObject);
|
|
||||||
ULONG STDMETHODCALLTYPE IEDispatcher::AddRef();
|
|
||||||
ULONG STDMETHODCALLTYPE IEDispatcher::Release();
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::GetTypeInfoCount(UINT *pctinfo);
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::GetTypeInfo(UINT, LCID, ITypeInfo **);
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::GetIDsOfNames(const IID &, LPOLESTR *, UINT, LCID, DISPID *);
|
|
||||||
HRESULT STDMETHODCALLTYPE IEDispatcher::Invoke(DISPID, const IID &, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *);
|
|
||||||
|
|
||||||
};
|
|
||||||
@@ -1,142 +0,0 @@
|
|||||||
#include "ImageButtonInstance.h"
|
|
||||||
G3D::TextureRef image = NULL;
|
|
||||||
int openGLID = 0;
|
|
||||||
G3D::TextureRef image_ovr = NULL;
|
|
||||||
int openGLID_ovr = 0;
|
|
||||||
G3D::TextureRef image_dn = NULL;
|
|
||||||
int openGLID_dn = 0;
|
|
||||||
G3D::TextureRef image_ds = NULL;
|
|
||||||
int openGLID_ds = 0;
|
|
||||||
Vector2 size;
|
|
||||||
Vector2 position;
|
|
||||||
ImageButtonInstance::ImageButtonInstance(G3D::TextureRef newImage, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL, G3D::TextureRef disableImage = NULL)
|
|
||||||
{
|
|
||||||
|
|
||||||
image = newImage;
|
|
||||||
openGLID = image->getOpenGLID();
|
|
||||||
image_ovr = overImage;
|
|
||||||
if(!image_ovr.isNull())
|
|
||||||
openGLID_ovr = image_ovr->getOpenGLID();
|
|
||||||
image_dn = downImage;
|
|
||||||
if(!image_dn.isNull())
|
|
||||||
openGLID_dn = image_dn->getOpenGLID();
|
|
||||||
image_ds = disableImage;
|
|
||||||
if(!image_ds.isNull())
|
|
||||||
openGLID_ds = image_ds->getOpenGLID();
|
|
||||||
Vector2 size = Vector2(0,0);
|
|
||||||
Vector2 position = Vector2(0,0);
|
|
||||||
floatCenter = false;
|
|
||||||
floatBottom = false;
|
|
||||||
floatRight = false;
|
|
||||||
disabled = false;
|
|
||||||
className = "ImageButton";
|
|
||||||
}
|
|
||||||
|
|
||||||
ImageButtonInstance::~ImageButtonInstance(void)
|
|
||||||
{
|
|
||||||
//Delete everything on destruction
|
|
||||||
image.~ReferenceCountedPointer();
|
|
||||||
delete image.getPointer();
|
|
||||||
image_ovr.~ReferenceCountedPointer();
|
|
||||||
delete image_ovr.getPointer();
|
|
||||||
image_ds.~ReferenceCountedPointer();
|
|
||||||
delete image_ds.getPointer();
|
|
||||||
image_dn.~ReferenceCountedPointer();
|
|
||||||
delete image_dn.getPointer();
|
|
||||||
image = NULL;
|
|
||||||
image_ovr = NULL;
|
|
||||||
image_ds = NULL;
|
|
||||||
image_dn = NULL;
|
|
||||||
delete listener;
|
|
||||||
listener = NULL;
|
|
||||||
selected = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ImageButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd)
|
|
||||||
{
|
|
||||||
Vector2 positionRelative = position;
|
|
||||||
if(floatRight && floatBottom)
|
|
||||||
{
|
|
||||||
positionRelative = Vector2(rd->getWidth() + position.x, rd->getHeight() + position.y);
|
|
||||||
}
|
|
||||||
else if(floatBottom)
|
|
||||||
{
|
|
||||||
positionRelative = Vector2(position.x, rd->getHeight() + position.y);
|
|
||||||
}
|
|
||||||
else if(floatRight)
|
|
||||||
{
|
|
||||||
positionRelative = Vector2(rd->getWidth() + position.x, position.y);
|
|
||||||
}
|
|
||||||
if(mousex >= positionRelative.x && mousey >= positionRelative.y)
|
|
||||||
{
|
|
||||||
if(mousex < positionRelative.x + size.x && mousey < positionRelative.y + size.y)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImageButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown)
|
|
||||||
{
|
|
||||||
bool drawDisabledBox = false;
|
|
||||||
Vector2 positionRelative = position;
|
|
||||||
if(floatRight && floatBottom)
|
|
||||||
{
|
|
||||||
positionRelative = Vector2(rd->getWidth() + position.x, rd->getHeight() + position.y);
|
|
||||||
}
|
|
||||||
else if(floatBottom)
|
|
||||||
{
|
|
||||||
positionRelative = Vector2(position.x, rd->getHeight() + position.y);
|
|
||||||
}
|
|
||||||
else if(floatRight)
|
|
||||||
{
|
|
||||||
positionRelative = Vector2(rd->getWidth() + position.x, position.y);
|
|
||||||
}
|
|
||||||
int renderimage = openGLID;
|
|
||||||
if(selected == true && !image_dn.isNull())
|
|
||||||
{
|
|
||||||
renderimage = openGLID_dn;
|
|
||||||
}
|
|
||||||
else if(disabled)
|
|
||||||
{
|
|
||||||
if(!image_ds.isNull())
|
|
||||||
renderimage = openGLID_ds;
|
|
||||||
else
|
|
||||||
drawDisabledBox = true;
|
|
||||||
}
|
|
||||||
else if(mouseInArea(positionRelative.x, positionRelative.y, positionRelative.x + size.x, positionRelative.y + size.y, mousePos.x, mousePos.y))
|
|
||||||
{
|
|
||||||
if(mouseDown && !image_dn.isNull())
|
|
||||||
{
|
|
||||||
renderimage = openGLID_dn;
|
|
||||||
}
|
|
||||||
else if(!image_ovr.isNull())
|
|
||||||
{
|
|
||||||
renderimage = openGLID_ovr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glEnable( GL_TEXTURE_2D );
|
|
||||||
glEnable(GL_BLEND);// you enable blending function
|
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
||||||
glBindTexture( GL_TEXTURE_2D, renderimage);
|
|
||||||
glBegin( GL_QUADS );
|
|
||||||
glTexCoord2d(0.0,0.0);
|
|
||||||
glVertex2f( positionRelative.x, positionRelative.y );
|
|
||||||
glTexCoord2d( 1.0,0.0 );
|
|
||||||
glVertex2f( positionRelative.x + size.x, positionRelative.y );
|
|
||||||
glTexCoord2d( 1.0,1.0 );
|
|
||||||
glVertex2f( positionRelative.x + size.x, positionRelative.y + size.y );
|
|
||||||
glTexCoord2d( 0.0,1.0 );
|
|
||||||
glVertex2f( positionRelative.x, positionRelative.y + size.y );
|
|
||||||
glEnd();
|
|
||||||
glDisable( GL_TEXTURE_2D );
|
|
||||||
|
|
||||||
if(drawDisabledBox)
|
|
||||||
{
|
|
||||||
Draw::box(Box(Vector3(positionRelative.x, positionRelative.y, 0), Vector3(positionRelative.x+size.x, positionRelative.y+size.y, 0)), rd, Color4(0.7F,0.7F,0.7F,0.3F), Color4::clear());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "BaseButtonInstance.h"
|
|
||||||
class ImageButtonInstance : public BaseButtonInstance
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
//ImageButtonInstance(G3D::TextureRef);
|
|
||||||
//ImageButtonInstance(G3D::TextureRef,G3D::TextureRef);
|
|
||||||
//ImageButtonInstance(G3D::TextureRef,G3D::TextureRef,G3D::TextureRef);
|
|
||||||
ImageButtonInstance(G3D::TextureRef,G3D::TextureRef,G3D::TextureRef,G3D::TextureRef);
|
|
||||||
~ImageButtonInstance(void);
|
|
||||||
void drawObj(RenderDevice*, Vector2, bool);
|
|
||||||
Vector2 size;
|
|
||||||
Vector2 position;
|
|
||||||
|
|
||||||
G3D::TextureRef image;
|
|
||||||
int openGLID;
|
|
||||||
G3D::TextureRef image_ovr;
|
|
||||||
int openGLID_ovr;
|
|
||||||
G3D::TextureRef image_dn;
|
|
||||||
int openGLID_dn;
|
|
||||||
G3D::TextureRef image_ds;
|
|
||||||
int openGLID_ds;
|
|
||||||
bool mouseInButton(float, float, RenderDevice*);
|
|
||||||
};
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef INPUTTYPE_H
|
|
||||||
#define INPUTTYPE_H
|
|
||||||
static enum InputType {NoInput, LeftTread, RightTread, Steer, Throtle, UpDown, Action1, Action2, Action3, Action4, Action5, Constant, Sin};
|
|
||||||
#endif
|
|
||||||
99
Instance.cpp
99
Instance.cpp
@@ -1,112 +1,21 @@
|
|||||||
#define WINVER 0x0400
|
|
||||||
#include <G3DAll.h>
|
#include <G3DAll.h>
|
||||||
#include "Instance.h"
|
#include "Instance.h"
|
||||||
|
|
||||||
std::string name;
|
std::string name;
|
||||||
Instance* parent = NULL;
|
Instance* parent;
|
||||||
std::vector<Instance* > children;
|
static std::string className = "Instance";
|
||||||
static std::string className = "BaseInstance";
|
|
||||||
|
|
||||||
Instance::Instance(void)
|
Instance::Instance(void)
|
||||||
{
|
{
|
||||||
parent = NULL;
|
|
||||||
name = "Default Game Instance";
|
name = "Default Game Instance";
|
||||||
className = "BaseInstance";
|
className = "Part";
|
||||||
}
|
|
||||||
|
|
||||||
Instance::Instance(const Instance &oinst)
|
|
||||||
{
|
|
||||||
setParent(oinst.parent);
|
|
||||||
name = oinst.name;
|
|
||||||
className = oinst.className;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Instance::render(RenderDevice* rd)
|
|
||||||
{
|
|
||||||
for(size_t i = 0; i < children.size(); i++)
|
|
||||||
{
|
|
||||||
children.at(i)->render(rd);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Instance::~Instance(void)
|
Instance::~Instance(void)
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < children.size(); i++)
|
name = "Default Game Instance";
|
||||||
{
|
|
||||||
delete children.at(i);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Instance::getClassName()
|
|
||||||
{
|
|
||||||
return className;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<Instance* > Instance::getChildren()
|
|
||||||
{
|
|
||||||
return children;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<Instance* > Instance::getAllChildren()
|
|
||||||
{
|
|
||||||
if(!children.empty())
|
|
||||||
{
|
|
||||||
std::vector<Instance* > totalchildren = children;
|
|
||||||
for(size_t i = 0; i < children.size(); i++)
|
|
||||||
{
|
|
||||||
std::vector<Instance* > subchildren = children.at(i)->getAllChildren();
|
|
||||||
if(!subchildren.empty())
|
|
||||||
totalchildren.insert(totalchildren.end(), subchildren.begin(), subchildren.end());
|
|
||||||
}
|
|
||||||
return totalchildren;
|
|
||||||
}
|
|
||||||
return children;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Instance::setParent(Instance* newParent)
|
|
||||||
{
|
|
||||||
if(parent != NULL)
|
|
||||||
{
|
|
||||||
parent->removeChild(this);
|
|
||||||
}
|
|
||||||
parent = newParent;
|
|
||||||
if(newParent != NULL)
|
|
||||||
{
|
|
||||||
newParent->addChild(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Instance* Instance::getParent()
|
|
||||||
{
|
|
||||||
return parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Instance::addChild(Instance* newChild)
|
|
||||||
{
|
|
||||||
children.push_back(newChild);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Instance::removeChild(Instance* oldChild)
|
|
||||||
{
|
|
||||||
for(size_t i = 0; i < children.size(); i++)
|
|
||||||
{
|
|
||||||
if(children.at(i) == oldChild)
|
|
||||||
{
|
|
||||||
children.erase(children.begin() + i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Instance* Instance::findFirstChild(std::string name)
|
|
||||||
{
|
|
||||||
Instance* child = NULL;
|
|
||||||
for(size_t i = 0; i < children.size(); i++)
|
|
||||||
{
|
|
||||||
if(children.at(i)->name == name)
|
|
||||||
{
|
|
||||||
child = children.at(i);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
|
|||||||
18
Instance.h
18
Instance.h
@@ -1,25 +1,11 @@
|
|||||||
#include <G3DAll.h>
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
class Instance
|
class Instance
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Instance(void);
|
Instance(void);
|
||||||
Instance(const Instance&);
|
~Instance(void);
|
||||||
virtual ~Instance(void);
|
|
||||||
std::string name;
|
std::string name;
|
||||||
virtual void render(RenderDevice*);
|
|
||||||
std::vector<Instance*> children; // All children.
|
|
||||||
std::string getClassName();
|
|
||||||
Instance* findFirstChild(std::string);
|
|
||||||
std::vector<Instance* > getChildren();
|
|
||||||
std::vector<Instance* > getAllChildren();
|
|
||||||
void setParent(Instance*);
|
|
||||||
void addChild(Instance*);
|
|
||||||
void removeChild(Instance*);
|
|
||||||
Instance* getParent();
|
|
||||||
virtual Instance* clone() const { return new Instance(*this); }
|
|
||||||
protected:
|
|
||||||
std::string className;
|
|
||||||
Instance* parent; // Another pointer.
|
Instance* parent; // Another pointer.
|
||||||
|
std::string className;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef JOINTTYPE_H
|
|
||||||
#define JOINTTYPE_H
|
|
||||||
static enum ActionType {UNK0, Weld, Snap, UNK3, Rotate, RotateP, RotateV, Glue, UNK8, UNK9, None};
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef KEYWORDFILTERTYPE_H
|
|
||||||
#define KEYWORDFILTERTYPE_H
|
|
||||||
static enum KeywordFilterType {Include, Exclude};
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef PARTTYPE_H
|
|
||||||
#define PARTTYPE_H
|
|
||||||
static enum PartType {Ball, Block, Cylinder};
|
|
||||||
#endif
|
|
||||||
@@ -1,214 +1,25 @@
|
|||||||
|
#include <G3DAll.h>
|
||||||
#include "PhysicalInstance.h"
|
#include "PhysicalInstance.h"
|
||||||
#include "Globals.h"
|
|
||||||
GLfloat vertecies[96];
|
bool canCollide = true;
|
||||||
bool changed = true;
|
bool anchored = false;
|
||||||
Box itemBox = Box();
|
Vector3 size;
|
||||||
|
Vector3 position;
|
||||||
|
Vector3 velocity;
|
||||||
|
Vector3 rotVelocity;
|
||||||
|
Color3 color;
|
||||||
|
|
||||||
PhysicalInstance::PhysicalInstance(void)
|
PhysicalInstance::PhysicalInstance(void)
|
||||||
{
|
{
|
||||||
name = "Default PhysicalInstance";
|
name = "Default PhysicalInstance";
|
||||||
className = "Part";
|
className = "Part";
|
||||||
canCollide = true;
|
canCollide = true;
|
||||||
anchored = true;
|
anchored = true;
|
||||||
size = Vector3(2,1,4);
|
size = Vector3(2,1,4);
|
||||||
setCFrame(CoordinateFrame(Vector3(0,0,0)));
|
position = Vector3(0,0,0);
|
||||||
color = Color3::gray();
|
color = Color3::gray();
|
||||||
velocity = Vector3(0,0,0);
|
velocity = Vector3(0,0,0);
|
||||||
rotVelocity = Vector3(0,0,0);
|
rotVelocity = Vector3(0,0,0);
|
||||||
top = Smooth;
|
|
||||||
front = Smooth;
|
|
||||||
right = Smooth;
|
|
||||||
back = Smooth;
|
|
||||||
left = Smooth;
|
|
||||||
bottom = Smooth;
|
|
||||||
}
|
|
||||||
|
|
||||||
PhysicalInstance::PhysicalInstance(const PhysicalInstance &oinst)
|
|
||||||
{
|
|
||||||
name = oinst.name;
|
|
||||||
className = "Part";
|
|
||||||
canCollide = oinst.canCollide;
|
|
||||||
setParent(oinst.parent);
|
|
||||||
anchored = oinst.anchored;
|
|
||||||
size = oinst.size;
|
|
||||||
setCFrame(oinst.cFrame);
|
|
||||||
color = oinst.color;
|
|
||||||
velocity = oinst.velocity;
|
|
||||||
rotVelocity = oinst.rotVelocity;
|
|
||||||
top = oinst.top;
|
|
||||||
front = oinst.front;
|
|
||||||
right = oinst.right;
|
|
||||||
back = oinst.back;
|
|
||||||
left = oinst.left;
|
|
||||||
bottom = oinst.bottom;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PhysicalInstance::setSize(Vector3 newSize)
|
|
||||||
{
|
|
||||||
int minsize = 1;
|
|
||||||
int maxsize = 512;
|
|
||||||
changed = true;
|
|
||||||
int sizex = (int)newSize.x;
|
|
||||||
if(sizex <= 0)
|
|
||||||
sizex = 1;
|
|
||||||
if(sizex > 512)
|
|
||||||
sizex = 512;
|
|
||||||
|
|
||||||
int sizey = (int)newSize.y;
|
|
||||||
if(sizey <= 0)
|
|
||||||
sizey = 1;
|
|
||||||
if(sizey > 512)
|
|
||||||
sizey = 512;
|
|
||||||
|
|
||||||
int sizez = (int)newSize.z;
|
|
||||||
if(sizez <= 0)
|
|
||||||
sizez = 1;
|
|
||||||
if(sizez > 512)
|
|
||||||
sizez = 512;
|
|
||||||
|
|
||||||
size = Vector3(sizex, sizey, sizez);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
Vector3 PhysicalInstance::getSize()
|
|
||||||
{
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
Vector3 PhysicalInstance::getPosition()
|
|
||||||
{
|
|
||||||
return position;
|
|
||||||
}
|
|
||||||
void PhysicalInstance::setPosition(Vector3 pos)
|
|
||||||
{
|
|
||||||
position = pos;
|
|
||||||
cFrame = CoordinateFrame(pos);
|
|
||||||
changed = true;
|
|
||||||
}
|
|
||||||
CoordinateFrame PhysicalInstance::getCFrame()
|
|
||||||
{
|
|
||||||
return cFrame;
|
|
||||||
}
|
|
||||||
void PhysicalInstance::setCFrame(CoordinateFrame coordinateFrame)
|
|
||||||
{
|
|
||||||
cFrame = coordinateFrame;
|
|
||||||
position = coordinateFrame.translation;
|
|
||||||
changed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
CoordinateFrame PhysicalInstance::getCFrameRenderBased()
|
|
||||||
{
|
|
||||||
return CoordinateFrame(getCFrame().rotation,Vector3(getCFrame().translation.x/2, getCFrame().translation.y/2, getCFrame().translation.z/2));
|
|
||||||
}
|
|
||||||
|
|
||||||
Box PhysicalInstance::getBox()
|
|
||||||
{
|
|
||||||
if(changed)
|
|
||||||
{
|
|
||||||
Box box = Box(Vector3(0+size.x/4, 0+size.y/4, 0+size.z/4) ,Vector3(0-size.x/4,0-size.y/4,0-size.z/4));
|
|
||||||
CoordinateFrame c = getCFrameRenderBased();
|
|
||||||
itemBox = c.toWorldSpace(box);
|
|
||||||
Vector3 v0,v1,v2,v3;
|
|
||||||
for (int f = 0; f < 6; f++) {
|
|
||||||
itemBox.getFaceCorners(f, v0,v1,v2,v3);
|
|
||||||
vertecies[f*16] = v0.x;
|
|
||||||
vertecies[(f*16)+1] = v0.y;
|
|
||||||
vertecies[(f*16)+2] = v0.z;
|
|
||||||
vertecies[(f*16)+3] = v1.x;
|
|
||||||
vertecies[(f*16)+4] = v1.y;
|
|
||||||
vertecies[(f*16)+5] = v1.z;
|
|
||||||
vertecies[(f*16)+6] = v2.x;
|
|
||||||
vertecies[(f*16)+7] = v2.y;
|
|
||||||
vertecies[(f*16)+8] = v2.z;
|
|
||||||
vertecies[(f*16)+9] = v3.x;
|
|
||||||
vertecies[(f*16)+10] = v3.y;
|
|
||||||
vertecies[(f*16)+11] = v3.z;
|
|
||||||
vertecies[(f*16)+12] = color.r;
|
|
||||||
vertecies[(f*16)+13] = color.g;
|
|
||||||
vertecies[(f*16)+14] = color.b;
|
|
||||||
vertecies[(f*16)+15] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return itemBox;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool PhysicalInstance::collides(Box box)
|
|
||||||
{
|
|
||||||
return CollisionDetection::fixedSolidBoxIntersectsFixedSolidBox(getBox(), box);
|
|
||||||
}
|
|
||||||
|
|
||||||
void PhysicalInstance::render(RenderDevice* rd)
|
|
||||||
{
|
|
||||||
if(changed)
|
|
||||||
Box box = getBox();
|
|
||||||
|
|
||||||
glColor(color);
|
|
||||||
/*glEnable( GL_TEXTURE_2D );
|
|
||||||
glEnable(GL_BLEND);// you enable blending function
|
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
||||||
glBindTexture( GL_TEXTURE_2D, Globals::surfaceId);
|
|
||||||
glBegin(GL_QUADS);*/
|
|
||||||
for(int i = 0; i < 96; i+=16)
|
|
||||||
{
|
|
||||||
double add = 0.8;
|
|
||||||
Surface face;
|
|
||||||
if(i == 0)//Back
|
|
||||||
face = back;
|
|
||||||
else if(i == 16)//Right
|
|
||||||
face = right;
|
|
||||||
else if(i == 32)//Front
|
|
||||||
face = front;
|
|
||||||
else if(i == 48)//Top
|
|
||||||
face = top;
|
|
||||||
else if(i == 64)//Left
|
|
||||||
face = left;
|
|
||||||
else if(i == 80)//Bottom
|
|
||||||
face = bottom;
|
|
||||||
|
|
||||||
/*if(face == Snaps)
|
|
||||||
add = 0.0;
|
|
||||||
else if(face == Inlets)
|
|
||||||
add = 0.2;*/
|
|
||||||
|
|
||||||
Vector3 v0 = Vector3(vertecies[i], vertecies[i+1], vertecies[i+2]), v1 = Vector3(vertecies[i+3], vertecies[i+4], vertecies[i+5]), v3 = Vector3(vertecies[i+9], vertecies[i+10], vertecies[i+11]);
|
|
||||||
/*glNormal3fv((v1 - v0).cross(v3 - v0).direction());
|
|
||||||
glTexCoord2f(0.0F,0.0F);
|
|
||||||
glVertex3fv(v0);
|
|
||||||
glTexCoord2f(1.0F,0.0F);
|
|
||||||
glVertex3fv(v1);
|
|
||||||
glTexCoord2f(1.0F,0.25F);
|
|
||||||
glVertex3f(vertecies[i+6], vertecies[i+7], vertecies[i+8]);
|
|
||||||
glTexCoord2f(0.0F,0.25F);
|
|
||||||
glVertex3fv(v3);*/
|
|
||||||
|
|
||||||
glEnable( GL_TEXTURE_2D );
|
|
||||||
glEnable(GL_BLEND);// you enable blending function
|
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
|
||||||
glBindTexture( GL_TEXTURE_2D, Globals::surfaceId);
|
|
||||||
glBegin( GL_QUADS );
|
|
||||||
glNormal3fv((v1 - v0).cross(v3 - v0).direction());
|
|
||||||
glTexCoord2d(0.0,0.0+add);
|
|
||||||
glVertex3fv(v0);
|
|
||||||
glTexCoord2d( 1.0,0.0+add);
|
|
||||||
glVertex3fv(v1);
|
|
||||||
glTexCoord2d(1.0,0.2+add);
|
|
||||||
glVertex3f(vertecies[i+6], vertecies[i+7], vertecies[i+8]);
|
|
||||||
glTexCoord2d( 0.0,0.2+add);
|
|
||||||
glVertex3fv(v3);
|
|
||||||
glEnd();
|
|
||||||
glDisable( GL_TEXTURE_2D );
|
|
||||||
}
|
|
||||||
/*glEnd();
|
|
||||||
glDisable(GL_TEXTURE_2D);*/
|
|
||||||
glColor(Color3::white());
|
|
||||||
if(!children.empty())
|
|
||||||
{
|
|
||||||
for(size_t i = 0; i < children.size(); i++)
|
|
||||||
{
|
|
||||||
children.at(i)->render(rd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PhysicalInstance::~PhysicalInstance(void)
|
PhysicalInstance::~PhysicalInstance(void)
|
||||||
@@ -216,5 +27,3 @@ PhysicalInstance::~PhysicalInstance(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,39 +1,15 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "instance.h"
|
#include "instance.h"
|
||||||
#include "Surface.h"
|
|
||||||
|
|
||||||
class PhysicalInstance :
|
class PhysicalInstance :
|
||||||
public Instance
|
public Instance
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PhysicalInstance(void);
|
PhysicalInstance(void);
|
||||||
PhysicalInstance(const PhysicalInstance &oinst);
|
|
||||||
Instance* clone() const { return new PhysicalInstance(*this); }
|
|
||||||
~PhysicalInstance(void);
|
~PhysicalInstance(void);
|
||||||
virtual void render(RenderDevice*);
|
|
||||||
Vector3 velocity;
|
|
||||||
Surface top;
|
|
||||||
Surface front;
|
|
||||||
Surface right;
|
|
||||||
Surface back;
|
|
||||||
Surface left;
|
|
||||||
Surface bottom;
|
|
||||||
CoordinateFrame cFrame;
|
|
||||||
Color3 color;
|
|
||||||
Vector3 getPosition();
|
|
||||||
void setPosition(Vector3);
|
|
||||||
CoordinateFrame getCFrame();
|
|
||||||
void setCFrame(CoordinateFrame);
|
|
||||||
Box getBox();
|
|
||||||
Box getScaledBox();
|
|
||||||
CoordinateFrame getCFrameRenderBased();
|
|
||||||
Vector3 getSize();
|
|
||||||
void setSize(Vector3);
|
|
||||||
bool canCollide;
|
|
||||||
bool anchored;
|
|
||||||
Vector3 rotVelocity;
|
|
||||||
bool collides(Box);
|
|
||||||
private:
|
|
||||||
Vector3 position;
|
|
||||||
Vector3 size;
|
Vector3 size;
|
||||||
|
Vector3 position;
|
||||||
|
Vector3 velocity;
|
||||||
|
Vector3 rotvelocity;
|
||||||
|
Color3 color;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,109 +0,0 @@
|
|||||||
#include <windows.h>
|
|
||||||
#include "WindowFunctions.h"
|
|
||||||
#include "propertyGrid.h"
|
|
||||||
#include "resource.h"
|
|
||||||
#include "PropertyWindow.h"
|
|
||||||
|
|
||||||
LRESULT CALLBACK PropProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|
||||||
{
|
|
||||||
PropertyWindow *propWind = (PropertyWindow *)GetWindowLongPtr(hwnd, GWL_USERDATA);
|
|
||||||
if (propWind==NULL)
|
|
||||||
{
|
|
||||||
return DefWindowProc(hwnd, msg, wParam, lParam);
|
|
||||||
}
|
|
||||||
switch(msg)
|
|
||||||
{
|
|
||||||
case WM_SIZE:
|
|
||||||
{
|
|
||||||
propWind->onResize();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return DefWindowProc(hwnd, msg, wParam, lParam);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool PropertyWindow::onCreate(int x, int y, int sx, int sy, HMODULE hThisInstance) {
|
|
||||||
|
|
||||||
if (!createWindowClass("propHWND",PropProc,hThisInstance))
|
|
||||||
return false;
|
|
||||||
_hwndProp = CreateWindowEx(
|
|
||||||
WS_EX_TOOLWINDOW,
|
|
||||||
"propHWND",
|
|
||||||
"Prop Test",
|
|
||||||
WS_VISIBLE | WS_POPUPWINDOW | WS_THICKFRAME | WS_CAPTION,
|
|
||||||
CW_USEDEFAULT,
|
|
||||||
CW_USEDEFAULT,
|
|
||||||
300,
|
|
||||||
660,
|
|
||||||
NULL, // parent
|
|
||||||
NULL, // menu
|
|
||||||
hThisInstance,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
_propGrid = New_PropertyGrid(_hwndProp,IDC_PROPERTYGRID);
|
|
||||||
|
|
||||||
PROPGRIDITEM pItem;
|
|
||||||
PropGrid_ItemInit(pItem);
|
|
||||||
|
|
||||||
pItem.lpszCatalog="Test";
|
|
||||||
pItem.lpszPropName="Offset";
|
|
||||||
pItem.lpszzCmbItems="What";
|
|
||||||
pItem.lpszPropDesc="Description";
|
|
||||||
pItem.lpCurValue=(LPARAM)"0, 0, 0";
|
|
||||||
|
|
||||||
pItem.iItemType=PIT_EDIT;
|
|
||||||
|
|
||||||
PROPGRIDITEM pItem2;
|
|
||||||
PropGrid_ItemInit(pItem2);
|
|
||||||
|
|
||||||
pItem2.lpszCatalog="Test";
|
|
||||||
pItem2.lpszPropName="s";
|
|
||||||
pItem2.lpszzCmbItems="itemlist\0itemlist2\0itemlist3";
|
|
||||||
pItem2.lpszPropDesc="";
|
|
||||||
pItem2.lpCurValue=0;
|
|
||||||
|
|
||||||
pItem2.iItemType=PIT_COMBO;
|
|
||||||
|
|
||||||
/*PROPGRIDITEM FauxExplorerItem;
|
|
||||||
PropGrid_ItemInit(FauxExplorerItem);
|
|
||||||
FauxExplorerItem.lpszCatalog="Test";
|
|
||||||
FauxExplorerItem.lpszPropName = "Editable Combo Field";
|
|
||||||
FauxExplorerItem.lpszzCmbItems = "Test1\0Test2\0Test3";
|
|
||||||
FauxExplorerItem.lpszPropDesc = "Press F4 to view drop down.";
|
|
||||||
FauxExplorerItem.iItemType = PIT_EDITCOMBO;
|
|
||||||
FauxExplorerItem.lpCurValue = 1;
|
|
||||||
PropGrid_AddItem(_propGrid, &FauxExplorerItem);*/
|
|
||||||
|
|
||||||
PropGrid_Enable(_propGrid,true);
|
|
||||||
ShowWindow(_propGrid,SW_SHOW);
|
|
||||||
PropGrid_AddItem(_propGrid,&pItem);
|
|
||||||
PropGrid_AddItem(_propGrid,&pItem2);
|
|
||||||
PropGrid_SetItemHeight(_propGrid,20);
|
|
||||||
PropGrid_ShowToolTips(_propGrid,TRUE);
|
|
||||||
PropGrid_ShowPropertyDescriptions(_propGrid,TRUE);
|
|
||||||
PropGrid_ExpandAllCatalogs(_propGrid);
|
|
||||||
|
|
||||||
SetWindowLongPtr(_propGrid,GWL_USERDATA,(LONG)this);
|
|
||||||
_redraw();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
PropertyWindow::PropertyWindow(int x, int y, int sx, int sy, HMODULE hThisInstance) {
|
|
||||||
onCreate(x, y, sx, sy, hThisInstance);
|
|
||||||
}
|
|
||||||
|
|
||||||
void PropertyWindow::onResize()
|
|
||||||
{
|
|
||||||
_redraw();
|
|
||||||
}
|
|
||||||
|
|
||||||
void PropertyWindow::_redraw()
|
|
||||||
{
|
|
||||||
RECT rect;
|
|
||||||
GetClientRect(_hwndProp,&rect);
|
|
||||||
SetWindowPos(_propGrid, NULL, 0, 20, rect.right, rect.bottom-20, SWP_NOZORDER | SWP_NOACTIVATE);
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
class PropertyWindow {
|
|
||||||
public:
|
|
||||||
PropertyWindow(int x, int y, int sx, int sy, HMODULE hThisInstance);
|
|
||||||
bool onCreate(int x, int y, int sx, int sy, HMODULE hThisInstance);
|
|
||||||
void onResize();
|
|
||||||
private:
|
|
||||||
HWND _propGrid;
|
|
||||||
HWND _hwndProp;
|
|
||||||
void _redraw();
|
|
||||||
};
|
|
||||||
10
README.md
10
README.md
@@ -1,10 +0,0 @@
|
|||||||
# ROBLOX 2005 Recreation Project
|
|
||||||
## Why are we doing this?
|
|
||||||
ROBLOX in 2005 was a different game, based around minigames with win and lose conditions rather than a 3D building game. Since this build of the client is presumed lost despite having around 100 users, we have to recreate it. We are using era-appropriate tools for this as well (Visual Studio 2005 and 2005-era compilers), as well as G3D 6.10, the era-appropriate version of the Graphics3D graphics library used by ROBLOX to this day.
|
|
||||||
|
|
||||||
## Features
|
|
||||||
Equivalent to known features of 05 as it stood in October 2005 with the 'Morgan McGuire builds'
|
|
||||||
|
|
||||||
## Credits
|
|
||||||
- Morgan McGuire, creator of G3D - his old pre-2006 website for the only existing colour pictures of 2005 era roblox on the internet, as well as a couple of helpful emails. He assisted roblox development in the 2004-2006 timeframe.
|
|
||||||
- David Baszucki and Erik Cassel (1967-2013, RIP) - for creating roblox
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef SOUNDTYPE_H
|
|
||||||
#define SOUNDTYPE_H
|
|
||||||
static enum SoundType {NoSound, Boing, Bomb, Break, Click, Clock, Slingshot, Page, Ping, Snap, Splat, Step, StepOn, Swoosh, Victory};
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef SURFACE_H
|
|
||||||
#define SURFACE_H
|
|
||||||
static enum Surface {Smooth, Snaps, Inlets, Glue, Weld, Hinge, Motor};
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef SURFACECONSTRAINT_H
|
|
||||||
#define SURFACECONSTRAINT_H
|
|
||||||
static enum SurfaceConstraint {None, Hinge, SteppingMotor, Motor};
|
|
||||||
#endif
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#ifndef SURFACETYPE_H
|
|
||||||
#define SURFACETYPE_H
|
|
||||||
static enum SurfaceType {Smooth, Bumps, Weld, Snaps, Inlet};
|
|
||||||
#endif
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
#include "TextButtonInstance.h"
|
|
||||||
Vector2 boxBegin;
|
|
||||||
Vector2 boxEnd;
|
|
||||||
Vector2 fontLocationRelativeTo;
|
|
||||||
Color4 textColor;
|
|
||||||
Color4 textOutlineColor;
|
|
||||||
Color4 boxColor;
|
|
||||||
Color4 boxOutlineColor;
|
|
||||||
Color4 textColorOvr;
|
|
||||||
Color4 textOutlineColorOvr;
|
|
||||||
Color4 boxColorOvr;
|
|
||||||
Color4 boxOutlineColorOvr;
|
|
||||||
Color4 textColorDn;
|
|
||||||
Color4 textOutlineColorDn;
|
|
||||||
Color4 boxColorDn;
|
|
||||||
Color4 boxOutlineColorDn;
|
|
||||||
bool centeredWithinBox;
|
|
||||||
std::string title;
|
|
||||||
G3D::GFontRef* font;
|
|
||||||
int textSize;
|
|
||||||
|
|
||||||
bool visible;
|
|
||||||
|
|
||||||
TextButtonInstance::TextButtonInstance(void)
|
|
||||||
{
|
|
||||||
boxBegin = Vector2(0,0);
|
|
||||||
boxEnd = Vector2(0,0);
|
|
||||||
fontLocationRelativeTo = Vector2(0,0);
|
|
||||||
centeredWithinBox = false;
|
|
||||||
title = "TextBox";
|
|
||||||
textColor = Color4(1, 1, 1, 1);
|
|
||||||
textOutlineColor = Color4(0, 0, 0, 0);
|
|
||||||
boxColor = Color4(0.6F,0.6F,0.6F,0.4F);
|
|
||||||
boxOutlineColor = Color4(0, 0, 0, 0);
|
|
||||||
setAllColorsSame();
|
|
||||||
textSize = 12;
|
|
||||||
floatBottom = false;
|
|
||||||
floatRight = false;
|
|
||||||
floatCenter = false;
|
|
||||||
visible = true;
|
|
||||||
className = "TextButton";
|
|
||||||
disabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TextButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice* rd)
|
|
||||||
{
|
|
||||||
Vector3 point1;
|
|
||||||
Vector3 point2;
|
|
||||||
if(floatBottom)
|
|
||||||
{
|
|
||||||
point1 = Vector3(boxBegin.x, rd->getHeight() + boxBegin.y,0);
|
|
||||||
point2 = Vector3(boxEnd.x, rd->getHeight() + boxEnd.y,0);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
point1 = Vector3(boxBegin.x, boxBegin.y,0);
|
|
||||||
point2 = Vector3(boxEnd.x, boxEnd.y,0);
|
|
||||||
}
|
|
||||||
if(mousex >= point1.x && mousey >= point1.y)
|
|
||||||
{
|
|
||||||
if(mousex < point2.x && mousey < point2.y)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void TextButtonInstance::setAllColorsSame()
|
|
||||||
{
|
|
||||||
textColorOvr = textColor;
|
|
||||||
textOutlineColorOvr = textOutlineColor;
|
|
||||||
boxColorOvr = boxColor;
|
|
||||||
boxOutlineColorOvr = boxOutlineColor;
|
|
||||||
textColorDn = textColor;
|
|
||||||
textOutlineColorDn = textOutlineColor;
|
|
||||||
boxColorDn = boxColor;
|
|
||||||
boxOutlineColorDn = boxOutlineColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
TextButtonInstance::~TextButtonInstance(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void TextButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown)
|
|
||||||
{
|
|
||||||
Vector3 point1;
|
|
||||||
Vector3 point2;
|
|
||||||
if(floatBottom)
|
|
||||||
{
|
|
||||||
point1 = Vector3(boxBegin.x, rd->getHeight() + boxBegin.y,0);
|
|
||||||
point2 = Vector3(boxEnd.x, rd->getHeight() + boxEnd.y,0);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
point1 = Vector3(boxBegin.x, boxBegin.y,0);
|
|
||||||
point2 = Vector3(boxEnd.x, boxEnd.y,0);
|
|
||||||
}
|
|
||||||
Vector2 RelativeTo = Vector2(point1.x + fontLocationRelativeTo.x, point1.y + fontLocationRelativeTo.y);
|
|
||||||
if(mouseInArea(point1.x, point1.y, point2.x, point2.y, mousePos.x, mousePos.y) && mouseDown)
|
|
||||||
{
|
|
||||||
Draw::box(Box(point1, point2), rd, boxColorDn, boxOutlineColorDn);
|
|
||||||
font->draw2D(rd, title, RelativeTo, textSize, textColorDn, textOutlineColorDn);
|
|
||||||
}
|
|
||||||
else if(mouseInArea(point1.x, point1.y, point2.x, point2.y, mousePos.x, mousePos.y))
|
|
||||||
{
|
|
||||||
Draw::box(Box(point1, point2), rd, boxColorOvr, boxOutlineColorOvr);
|
|
||||||
font->draw2D(rd, title, RelativeTo, textSize, textColorOvr, textOutlineColorOvr);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Draw::box(Box(point1, point2), rd, boxColor, boxOutlineColor);
|
|
||||||
font->draw2D(rd, title, RelativeTo, textSize, textColor, textOutlineColor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void doNullCheck()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "BaseButtonInstance.h"
|
|
||||||
class TextButtonInstance : public BaseButtonInstance
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
TextButtonInstance(void);
|
|
||||||
~TextButtonInstance(void);
|
|
||||||
void setAllColorsSame();
|
|
||||||
Vector2 boxBegin;
|
|
||||||
Vector2 boxEnd;
|
|
||||||
Vector2 fontLocationRelativeTo;
|
|
||||||
Color4 textColor;
|
|
||||||
Color4 textOutlineColor;
|
|
||||||
Color4 boxColor;
|
|
||||||
Color4 boxOutlineColor;
|
|
||||||
Color4 textColorOvr;
|
|
||||||
Color4 textOutlineColorOvr;
|
|
||||||
Color4 boxColorOvr;
|
|
||||||
Color4 boxOutlineColorOvr;
|
|
||||||
Color4 textColorDn;
|
|
||||||
Color4 textOutlineColorDn;
|
|
||||||
Color4 boxColorDn;
|
|
||||||
Color4 boxOutlineColorDn;
|
|
||||||
bool centeredWithinBox;
|
|
||||||
std::string title;
|
|
||||||
G3D::GFontRef font;
|
|
||||||
bool visible;
|
|
||||||
int textSize;
|
|
||||||
void drawObj(RenderDevice*, Vector2, bool);
|
|
||||||
bool mouseInButton(float, float, RenderDevice*);
|
|
||||||
};
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
|
|
||||||
#include "WindowFunctions.h"
|
|
||||||
#include <sstream>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
bool createWindowClass(const char* name,WNDPROC proc,HMODULE hInstance)
|
|
||||||
{
|
|
||||||
WNDCLASSEX wc;
|
|
||||||
wc.cbSize = sizeof(WNDCLASSEX);
|
|
||||||
wc.style = 0;
|
|
||||||
wc.lpfnWndProc = proc;
|
|
||||||
wc.cbClsExtra = 0;
|
|
||||||
wc.cbWndExtra = 0;
|
|
||||||
wc.hInstance = hInstance;
|
|
||||||
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
|
|
||||||
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
|
||||||
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW);
|
|
||||||
wc.lpszMenuName = NULL;
|
|
||||||
wc.lpszClassName = name;
|
|
||||||
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
|
|
||||||
if (!RegisterClassEx (&wc))
|
|
||||||
{
|
|
||||||
stringstream errMsg;
|
|
||||||
errMsg<<"Failed to register " << name;
|
|
||||||
MessageBox(NULL, errMsg.str().c_str(),"Dynamica Crash", MB_OK);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
bool createWindowClass(const char* name,WNDPROC proc,HMODULE hInstance);
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#include "WorkspaceInstance.h"
|
|
||||||
float timer = 60.0F;
|
|
||||||
int score = 0;
|
|
||||||
|
|
||||||
WorkspaceInstance::WorkspaceInstance(void)
|
|
||||||
{
|
|
||||||
className = "Workspace";
|
|
||||||
timer = 60.0F;
|
|
||||||
score = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
WorkspaceInstance::~WorkspaceInstance(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "instance.h"
|
|
||||||
|
|
||||||
class WorkspaceInstance :
|
|
||||||
public Instance
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
float timer;
|
|
||||||
int score;
|
|
||||||
WorkspaceInstance(void);
|
|
||||||
~WorkspaceInstance(void);
|
|
||||||
};
|
|
||||||
639
ax.cpp
639
ax.cpp
@@ -1,639 +0,0 @@
|
|||||||
// AX.CPP
|
|
||||||
#include <windows.h>
|
|
||||||
#include <comdef.h>
|
|
||||||
#include <exdisp.h>
|
|
||||||
#include <oledlg.h>
|
|
||||||
#include "ax.h"
|
|
||||||
|
|
||||||
|
|
||||||
#pragma warning (disable: 4311)
|
|
||||||
#pragma warning (disable: 4312)
|
|
||||||
#pragma warning (disable: 4244)
|
|
||||||
#pragma warning (disable: 4800)
|
|
||||||
|
|
||||||
|
|
||||||
// AXClientSite class
|
|
||||||
// ------- Implement member functions
|
|
||||||
AXClientSite :: AXClientSite()
|
|
||||||
{
|
|
||||||
refNum = 0;
|
|
||||||
CalledCanInPlace = 0;
|
|
||||||
InPlace = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
AXClientSite :: ~AXClientSite()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// IUnknown methods
|
|
||||||
STDMETHODIMP AXClientSite :: QueryInterface(REFIID iid,void**ppvObject)
|
|
||||||
{
|
|
||||||
*ppvObject = 0;
|
|
||||||
if (iid == IID_IOleClientSite)
|
|
||||||
*ppvObject = (IOleClientSite*)this;
|
|
||||||
if (iid == IID_IUnknown)
|
|
||||||
*ppvObject = this;
|
|
||||||
if (iid == IID_IAdviseSink)
|
|
||||||
*ppvObject = (IAdviseSink*)this;
|
|
||||||
if (iid == IID_IDispatch)
|
|
||||||
*ppvObject = (IDispatch*)this;
|
|
||||||
if (ExternalPlace == false)
|
|
||||||
{
|
|
||||||
if (iid == IID_IOleInPlaceSite)
|
|
||||||
*ppvObject = (IOleInPlaceSite*)this;
|
|
||||||
if (iid == IID_IOleInPlaceFrame)
|
|
||||||
*ppvObject = (IOleInPlaceFrame*)this;
|
|
||||||
if (iid == IID_IOleInPlaceUIWindow)
|
|
||||||
*ppvObject = (IOleInPlaceUIWindow*)this;
|
|
||||||
}
|
|
||||||
|
|
||||||
//* Log Call
|
|
||||||
if (*ppvObject)
|
|
||||||
{
|
|
||||||
AddRef();
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP_(ULONG) AXClientSite :: AddRef()
|
|
||||||
{
|
|
||||||
refNum++;
|
|
||||||
return refNum;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP_(ULONG) AXClientSite :: Release()
|
|
||||||
{
|
|
||||||
refNum--;
|
|
||||||
return refNum;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// IOleClientSite methods
|
|
||||||
STDMETHODIMP AXClientSite :: SaveObject()
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: GetMoniker(DWORD dwA,DWORD dwW,IMoniker**pm)
|
|
||||||
{
|
|
||||||
*pm = 0;
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: GetContainer(IOleContainer**pc)
|
|
||||||
{
|
|
||||||
*pc = 0;
|
|
||||||
return E_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: ShowObject()
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: OnShowWindow(BOOL f)
|
|
||||||
{
|
|
||||||
InvalidateRect(Window, 0, TRUE);
|
|
||||||
InvalidateRect(Parent, 0, TRUE);
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: RequestNewObjectLayout()
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP_(void) AXClientSite :: OnViewChange(DWORD dwAspect,LONG lIndex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP_(void) AXClientSite :: OnRename(IMoniker * pmk)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP_(void) AXClientSite :: OnSave()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP_(void) AXClientSite :: OnClose()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// IOleInPlaceSite methods
|
|
||||||
STDMETHODIMP AXClientSite :: GetWindow(HWND *p)
|
|
||||||
{
|
|
||||||
*p = Window;
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: ContextSensitiveHelp(BOOL)
|
|
||||||
{
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: CanInPlaceActivate()
|
|
||||||
{
|
|
||||||
if (InPlace)
|
|
||||||
{
|
|
||||||
CalledCanInPlace = true;
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
return S_FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: OnInPlaceActivate()
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: OnUIActivate()
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: GetWindowContext(IOleInPlaceFrame** ppFrame,IOleInPlaceUIWindow **ppDoc,LPRECT r1,LPRECT r2,LPOLEINPLACEFRAMEINFO o)
|
|
||||||
{
|
|
||||||
*ppFrame = (IOleInPlaceFrame*)this;
|
|
||||||
AddRef();
|
|
||||||
|
|
||||||
*ppDoc = NULL;
|
|
||||||
GetClientRect(Window,r1);
|
|
||||||
GetClientRect(Window,r2);
|
|
||||||
o->cb = sizeof(OLEINPLACEFRAMEINFO);
|
|
||||||
o->fMDIApp = false;
|
|
||||||
o->hwndFrame = Parent;
|
|
||||||
o->haccel = 0;
|
|
||||||
o->cAccelEntries = 0;
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: Scroll(SIZE s)
|
|
||||||
{
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: OnUIDeactivate(int)
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: OnInPlaceDeactivate()
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: DiscardUndoState()
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: DeactivateAndUndo()
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: OnPosRectChange(LPCRECT)
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// IOleInPlaceFrame methods
|
|
||||||
STDMETHODIMP AXClientSite :: GetBorder(LPRECT l)
|
|
||||||
{
|
|
||||||
GetClientRect(Window,l);
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: RequestBorderSpace(LPCBORDERWIDTHS b)
|
|
||||||
{
|
|
||||||
//return S_OK;
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: SetBorderSpace(LPCBORDERWIDTHS b)
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: SetActiveObject(IOleInPlaceActiveObject*pV,LPCOLESTR s)
|
|
||||||
{
|
|
||||||
ax->Pao = pV;
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: SetStatusText(LPCOLESTR t)
|
|
||||||
{
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: EnableModeless(BOOL f)
|
|
||||||
{
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
STDMETHODIMP AXClientSite :: TranslateAccelerator(LPMSG,WORD)
|
|
||||||
{
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// IDispatch Methods
|
|
||||||
HRESULT _stdcall AXClientSite :: GetTypeInfoCount(
|
|
||||||
unsigned int * pctinfo) {return E_NOTIMPL;}
|
|
||||||
|
|
||||||
HRESULT _stdcall AXClientSite :: GetTypeInfo(
|
|
||||||
unsigned int iTInfo,
|
|
||||||
LCID lcid,
|
|
||||||
ITypeInfo FAR* FAR* ppTInfo) {return E_NOTIMPL;}
|
|
||||||
|
|
||||||
HRESULT _stdcall AXClientSite :: GetIDsOfNames(
|
|
||||||
REFIID riid,
|
|
||||||
OLECHAR FAR* FAR*,
|
|
||||||
unsigned int cNames,
|
|
||||||
LCID lcid,
|
|
||||||
DISPID FAR* ) {return E_NOTIMPL;}
|
|
||||||
|
|
||||||
|
|
||||||
// Other Methods
|
|
||||||
void AX :: Init(char* cls)
|
|
||||||
{
|
|
||||||
wchar_t x[1000] = {0};
|
|
||||||
MultiByteToWideChar(CP_ACP,0,cls,-1,x,1000);
|
|
||||||
CLSIDFromString(x,&clsid);
|
|
||||||
iid = (IID*)&IID_IOleObject;
|
|
||||||
OleObject = 0;
|
|
||||||
Storage = 0;
|
|
||||||
View = 0;
|
|
||||||
Data = 0;
|
|
||||||
Unk = 0;
|
|
||||||
Pao = 0;
|
|
||||||
AdviseToken = 0;
|
|
||||||
memset(DAdviseToken,0,sizeof(DAdviseToken));
|
|
||||||
Site.ax = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
AX :: AX(char* cls)
|
|
||||||
{
|
|
||||||
Init(cls);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void AX :: Clean()
|
|
||||||
{
|
|
||||||
if (Site.InPlace == true)
|
|
||||||
{
|
|
||||||
Site.InPlace = false;
|
|
||||||
IOleInPlaceObject* iib = 0;
|
|
||||||
if (OleObject)
|
|
||||||
OleObject->QueryInterface(IID_IOleInPlaceObject,(void**)&iib);
|
|
||||||
if (iib)
|
|
||||||
{
|
|
||||||
iib->UIDeactivate();
|
|
||||||
iib->InPlaceDeactivate();
|
|
||||||
iib->Release();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (AdviseToken && OleObject)
|
|
||||||
{
|
|
||||||
OleObject->Unadvise(AdviseToken);
|
|
||||||
AdviseToken = 0;
|
|
||||||
}
|
|
||||||
if (Data)
|
|
||||||
{
|
|
||||||
for(int i = 0 ; i < 100 ; i++)
|
|
||||||
if (DAdviseToken[i])
|
|
||||||
Data->DUnadvise(DAdviseToken[i]);
|
|
||||||
memset(DAdviseToken,0,sizeof(DAdviseToken));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (Pao) Pao->Release();
|
|
||||||
if (Unk) Unk->Release();
|
|
||||||
if (Data) Data->Release();
|
|
||||||
if (View) View->Release();
|
|
||||||
if (Storage) Storage->Release();
|
|
||||||
if (OleObject) OleObject->Release();
|
|
||||||
Unk = 0;
|
|
||||||
Data = 0;
|
|
||||||
View = 0;
|
|
||||||
Storage = 0;
|
|
||||||
OleObject = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
AX :: ~AX()
|
|
||||||
{
|
|
||||||
Clean();
|
|
||||||
}
|
|
||||||
|
|
||||||
CLSID AX :: GetCLSID()
|
|
||||||
{
|
|
||||||
return clsid;
|
|
||||||
}
|
|
||||||
|
|
||||||
HRESULT _stdcall AXClientSite :: InsertMenus(HMENU h,LPOLEMENUGROUPWIDTHS x)
|
|
||||||
{
|
|
||||||
/* AX * t = (AX*)ax;
|
|
||||||
if (t->AddMenu)
|
|
||||||
{
|
|
||||||
x->width[0] = 0;
|
|
||||||
x->width[2] = 0;
|
|
||||||
x->width[4] = 0;
|
|
||||||
//InsertMenu(h,0,MF_BYPOSITION | MF_POPUP,(int)Menu,"test");
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
HRESULT _stdcall AXClientSite :: SetMenu(HMENU h,HOLEMENU hO,HWND hw)
|
|
||||||
{
|
|
||||||
AX * t = (AX*)ax;
|
|
||||||
/* if (t->AddMenu)
|
|
||||||
{
|
|
||||||
if (!h && !hO)
|
|
||||||
{
|
|
||||||
//::SetMenu(Window,Menu);
|
|
||||||
//DrawMenuBar(Window);
|
|
||||||
::SetMenu(Parent,Menu);
|
|
||||||
DrawMenuBar(Parent);
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
//::SetMenu(Window,h);
|
|
||||||
//DrawMenuBar(Window);
|
|
||||||
|
|
||||||
//HMENU hm = GetMenu(Parent);
|
|
||||||
//AppendMenu(hm,MF_POPUP | MF_MENUBREAK,(int)h,0);
|
|
||||||
//::SetMenu(Parent,hm);
|
|
||||||
::SetMenu(Parent,h);
|
|
||||||
DrawMenuBar(Parent);
|
|
||||||
|
|
||||||
//hOleWindow = hw;
|
|
||||||
//OleSetMenuDescriptor(hO,Window,hw,0,0);
|
|
||||||
OleSetMenuDescriptor(hO,Parent,hw,0,0);
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
HRESULT _stdcall AXClientSite :: RemoveMenus(HMENU h)
|
|
||||||
{
|
|
||||||
AX * t = (AX*)ax;
|
|
||||||
if (t->AddMenu)
|
|
||||||
{
|
|
||||||
if (!h)
|
|
||||||
return S_OK;
|
|
||||||
|
|
||||||
int c = GetMenuItemCount(h);
|
|
||||||
for (int i = c ; i >= 0 ; i--)
|
|
||||||
{
|
|
||||||
HMENU hh = GetSubMenu(h,i);
|
|
||||||
if (hh == Menu)
|
|
||||||
RemoveMenu(h,i,MF_BYPOSITION);
|
|
||||||
}
|
|
||||||
if (h == Menu)
|
|
||||||
DestroyMenu(h);
|
|
||||||
|
|
||||||
//DrawMenuBar(Window);
|
|
||||||
DrawMenuBar(Parent);
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
HRESULT _stdcall AXClientSite :: Invoke(
|
|
||||||
DISPID dispIdMember,
|
|
||||||
REFIID riid,
|
|
||||||
LCID lcid,
|
|
||||||
WORD wFlags,
|
|
||||||
DISPPARAMS FAR* pDispParams,
|
|
||||||
VARIANT FAR* pVarResult,
|
|
||||||
EXCEPINFO FAR* pExcepInfo,
|
|
||||||
unsigned int FAR* puArgErr)
|
|
||||||
{
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void _stdcall AXClientSite :: OnDataChange(FORMATETC *pFormatEtc,STGMEDIUM *pStgmed)
|
|
||||||
{
|
|
||||||
// Notify our app that a change is being requested
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Window Procedure for AX control
|
|
||||||
LRESULT CALLBACK AXWndProc(HWND hh,UINT mm,WPARAM ww,LPARAM ll)
|
|
||||||
{
|
|
||||||
if (mm == WM_CREATE)
|
|
||||||
{
|
|
||||||
char tit[1000] = {0};
|
|
||||||
HRESULT hr;
|
|
||||||
|
|
||||||
GetWindowTextA(hh,tit,1000);
|
|
||||||
|
|
||||||
AX* ax;
|
|
||||||
ax = new AX(tit);
|
|
||||||
|
|
||||||
SetWindowLong(hh,GWL_USERDATA,(LONG)ax);
|
|
||||||
ax->Site.Window = hh;
|
|
||||||
ax->Site.Parent = GetParent(hh);
|
|
||||||
|
|
||||||
hr = StgCreateDocfile(0,STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_DIRECT | STGM_CREATE,0,&ax->Storage);
|
|
||||||
ax->Site.Window = hh;
|
|
||||||
|
|
||||||
REFIID rid = *ax->iid;
|
|
||||||
hr = OleCreate(ax->GetCLSID(),rid,OLERENDER_DRAW,0,&ax->Site,ax->Storage,(void**)&ax->OleObject);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (!ax->OleObject)
|
|
||||||
{
|
|
||||||
delete ax;
|
|
||||||
SetWindowLong(hh,GWL_USERDATA,0);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr = OleSetContainedObject(ax->OleObject, TRUE);
|
|
||||||
hr = ax->OleObject->Advise(&ax->Site,&ax->AdviseToken);
|
|
||||||
hr = ax->OleObject->QueryInterface(IID_IViewObject,(void**)&ax->View);
|
|
||||||
hr = ax->OleObject->QueryInterface(IID_IDataObject,(void**)&ax->Data);
|
|
||||||
if (ax->View)
|
|
||||||
hr = ax->View->SetAdvise(DVASPECT_CONTENT,0,&ax->Site);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (mm == WM_DESTROY)
|
|
||||||
{
|
|
||||||
AX* ax = (AX*)GetWindowLong(hh,GWL_USERDATA);
|
|
||||||
if (!ax)
|
|
||||||
return 0;
|
|
||||||
ax->Clean();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mm == AX_SETDATAADVISE)
|
|
||||||
{
|
|
||||||
AX* ax = (AX*)GetWindowLong(hh,GWL_USERDATA);
|
|
||||||
if (!ax)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
// 1.Enum available FORMATETC structures
|
|
||||||
// 2.Set Data Advise specified to index ww
|
|
||||||
if (!ax->Data)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
IEnumFORMATETC* ief = 0;
|
|
||||||
int i = 0;
|
|
||||||
|
|
||||||
FORMATETC fe;
|
|
||||||
ax->Data->EnumFormatEtc((LPARAM)ll,&ief);
|
|
||||||
if (!ief)
|
|
||||||
return 0;
|
|
||||||
for(;;)
|
|
||||||
{
|
|
||||||
HRESULT hr = ief->Next(1,&fe,0);
|
|
||||||
if (hr != S_OK)
|
|
||||||
break;
|
|
||||||
if (ww == i)
|
|
||||||
break;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
ief->Release();
|
|
||||||
if (ww == -1)
|
|
||||||
return i;
|
|
||||||
|
|
||||||
if (ax->Data)
|
|
||||||
ax->Data->DAdvise(&fe,0,&ax->Site,&ax->DAdviseToken[ww]);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mm == AX_GETAXINTERFACE)
|
|
||||||
{
|
|
||||||
AX* ax = (AX*)GetWindowLong(hh,GWL_USERDATA);
|
|
||||||
return (LONG)ax;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mm == AX_QUERYINTERFACE)
|
|
||||||
{
|
|
||||||
char* p = (char*)ww;
|
|
||||||
AX* ax = (AX*)GetWindowLong(hh,GWL_USERDATA);
|
|
||||||
if (!ax)
|
|
||||||
return 0;
|
|
||||||
return ax->OleObject->QueryInterface((REFIID)*p,(void**)ll);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mm == WM_LBUTTONDBLCLK)
|
|
||||||
{
|
|
||||||
PostMessage(hh,AX_INPLACE,1,0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (mm == AX_INPLACE)
|
|
||||||
{
|
|
||||||
AX* ax = (AX*)GetWindowLong(hh,GWL_USERDATA);
|
|
||||||
if (!ax)
|
|
||||||
return 0;
|
|
||||||
if (!ax->OleObject)
|
|
||||||
return 0;
|
|
||||||
RECT rect;
|
|
||||||
HRESULT hr;
|
|
||||||
::GetClientRect(hh,&rect);
|
|
||||||
|
|
||||||
if (ax->Site.InPlace == false && ww == 1) // Activate In Place
|
|
||||||
{
|
|
||||||
ax->Site.InPlace = true;
|
|
||||||
ax->Site.ExternalPlace = ll;
|
|
||||||
hr = ax->OleObject->DoVerb(OLEIVERB_INPLACEACTIVATE,0,&ax->Site,0,hh,&rect);
|
|
||||||
InvalidateRect(hh,0,true);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ax->Site.InPlace == true && ww == 0) // Deactivate
|
|
||||||
{
|
|
||||||
ax->Site.InPlace = false;
|
|
||||||
|
|
||||||
IOleInPlaceObject* iib;
|
|
||||||
ax->OleObject->QueryInterface(IID_IOleInPlaceObject,(void**)&iib);
|
|
||||||
if (iib)
|
|
||||||
{
|
|
||||||
iib->UIDeactivate();
|
|
||||||
iib->InPlaceDeactivate();
|
|
||||||
iib->Release();
|
|
||||||
InvalidateRect(hh,0,true);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mm == WM_SIZE)
|
|
||||||
{
|
|
||||||
AX* ax = (AX*)GetWindowLong(hh,GWL_USERDATA);
|
|
||||||
if (!ax)
|
|
||||||
return 0;
|
|
||||||
if (!ax->OleObject)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
DefWindowProc(hh,mm,ww,ll);
|
|
||||||
|
|
||||||
if (ax->Site.InPlace == true)
|
|
||||||
{
|
|
||||||
SendMessage(hh,AX_INPLACE,0,0);
|
|
||||||
InvalidateRect(hh,0,true);
|
|
||||||
SendMessage(hh,AX_INPLACE,1,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
IOleInPlaceObject* pl;
|
|
||||||
ax->OleObject->QueryInterface(IID_IOleInPlaceObject,(void**)&pl);
|
|
||||||
if (!pl)
|
|
||||||
return 0;
|
|
||||||
RECT r;
|
|
||||||
GetClientRect(ax->Site.Window,&r);
|
|
||||||
pl->SetObjectRects(&r,&r);
|
|
||||||
pl->Release();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return DefWindowProc(hh,mm,ww,ll);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Registration function
|
|
||||||
ATOM AXRegister()
|
|
||||||
{
|
|
||||||
WNDCLASSEXA wC = {0};
|
|
||||||
|
|
||||||
wC.cbSize = sizeof(wC);
|
|
||||||
wC.style = CS_GLOBALCLASS | CS_DBLCLKS;
|
|
||||||
wC.lpfnWndProc = AXWndProc;
|
|
||||||
wC.cbWndExtra = 4;
|
|
||||||
wC.hInstance = GetModuleHandle(0);
|
|
||||||
wC.lpszClassName = "AX";
|
|
||||||
return RegisterClassExA(&wC);
|
|
||||||
}
|
|
||||||
|
|
||||||
142
ax.h
142
ax.h
@@ -1,142 +0,0 @@
|
|||||||
// AX.H
|
|
||||||
|
|
||||||
// messages
|
|
||||||
#define AX_QUERYINTERFACE (WM_USER + 1)
|
|
||||||
#define AX_INPLACE (WM_USER + 2)
|
|
||||||
#define AX_GETAXINTERFACE (WM_USER + 3)
|
|
||||||
#define AX_CONNECTOBJECT (WM_USER + 4)
|
|
||||||
#define AX_DISCONNECTOBJECT (WM_USER + 5)
|
|
||||||
#define AX_SETDATAADVISE (WM_USER + 6)
|
|
||||||
#define AX_DOVERB (WM_USER + 7)
|
|
||||||
|
|
||||||
|
|
||||||
// Registration function
|
|
||||||
ATOM AXRegister();
|
|
||||||
|
|
||||||
|
|
||||||
// Class AXClientSide
|
|
||||||
class AXClientSite :
|
|
||||||
public IOleClientSite,
|
|
||||||
public IDispatch,
|
|
||||||
public IAdviseSink,
|
|
||||||
public IOleInPlaceSite,
|
|
||||||
public IOleInPlaceFrame
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
|
|
||||||
int refNum;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
|
|
||||||
HWND Window;
|
|
||||||
HWND Parent;
|
|
||||||
HMENU Menu;
|
|
||||||
bool InPlace;
|
|
||||||
bool ExternalPlace;
|
|
||||||
bool CalledCanInPlace;
|
|
||||||
|
|
||||||
class AX* ax;
|
|
||||||
|
|
||||||
// MyClientSite Methods
|
|
||||||
AXClientSite();
|
|
||||||
virtual ~AXClientSite();
|
|
||||||
STDMETHODIMP_(void) OnDataChange2(FORMATETC*);
|
|
||||||
|
|
||||||
// IUnknown methods
|
|
||||||
STDMETHODIMP QueryInterface(REFIID iid,void**ppvObject);
|
|
||||||
STDMETHODIMP_(ULONG) AddRef();
|
|
||||||
STDMETHODIMP_(ULONG) Release();
|
|
||||||
|
|
||||||
// IOleClientSite methods
|
|
||||||
STDMETHODIMP SaveObject();
|
|
||||||
STDMETHODIMP GetMoniker(DWORD dwA,DWORD dwW,IMoniker**pm);
|
|
||||||
STDMETHODIMP GetContainer(IOleContainer**pc);
|
|
||||||
STDMETHODIMP ShowObject();
|
|
||||||
STDMETHODIMP OnShowWindow(BOOL f);
|
|
||||||
STDMETHODIMP RequestNewObjectLayout();
|
|
||||||
|
|
||||||
// IAdviseSink methods
|
|
||||||
STDMETHODIMP_(void) OnDataChange(FORMATETC *pFormatEtc,STGMEDIUM *pStgmed);
|
|
||||||
|
|
||||||
STDMETHODIMP_(void) OnViewChange(DWORD dwAspect,LONG lIndex);
|
|
||||||
STDMETHODIMP_(void) OnRename(IMoniker * pmk);
|
|
||||||
STDMETHODIMP_(void) OnSave();
|
|
||||||
STDMETHODIMP_(void) OnClose();
|
|
||||||
|
|
||||||
// IOleInPlaceSite methods
|
|
||||||
STDMETHODIMP GetWindow(HWND *p);
|
|
||||||
STDMETHODIMP ContextSensitiveHelp(BOOL);
|
|
||||||
STDMETHODIMP CanInPlaceActivate();
|
|
||||||
STDMETHODIMP OnInPlaceActivate();
|
|
||||||
STDMETHODIMP OnUIActivate();
|
|
||||||
STDMETHODIMP GetWindowContext(IOleInPlaceFrame** ppFrame,IOleInPlaceUIWindow **ppDoc,LPRECT r1,LPRECT r2,LPOLEINPLACEFRAMEINFO o);
|
|
||||||
STDMETHODIMP Scroll(SIZE s);
|
|
||||||
STDMETHODIMP OnUIDeactivate(int);
|
|
||||||
STDMETHODIMP OnInPlaceDeactivate();
|
|
||||||
STDMETHODIMP DiscardUndoState();
|
|
||||||
STDMETHODIMP DeactivateAndUndo();
|
|
||||||
STDMETHODIMP OnPosRectChange(LPCRECT);
|
|
||||||
|
|
||||||
// IOleInPlaceFrame methods
|
|
||||||
STDMETHODIMP GetBorder(LPRECT l);
|
|
||||||
STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS);
|
|
||||||
STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS w);
|
|
||||||
STDMETHODIMP SetActiveObject(IOleInPlaceActiveObject*pV,LPCOLESTR s);
|
|
||||||
STDMETHODIMP InsertMenus(HMENU h,LPOLEMENUGROUPWIDTHS x);
|
|
||||||
STDMETHODIMP SetMenu(HMENU h,HOLEMENU hO,HWND hw);
|
|
||||||
STDMETHODIMP RemoveMenus(HMENU h);
|
|
||||||
STDMETHODIMP SetStatusText(LPCOLESTR t);
|
|
||||||
STDMETHODIMP EnableModeless(BOOL f);
|
|
||||||
STDMETHODIMP TranslateAccelerator(LPMSG,WORD);
|
|
||||||
|
|
||||||
|
|
||||||
// IDispatch Methods
|
|
||||||
HRESULT _stdcall GetTypeInfoCount(unsigned int * pctinfo);
|
|
||||||
HRESULT _stdcall GetTypeInfo(unsigned int iTInfo,LCID lcid,ITypeInfo FAR* FAR* ppTInfo);
|
|
||||||
HRESULT _stdcall GetIDsOfNames(REFIID riid,OLECHAR FAR* FAR*,unsigned int cNames,LCID lcid,DISPID FAR* );
|
|
||||||
HRESULT _stdcall Invoke(DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS FAR* pDispParams,VARIANT FAR* pVarResult,EXCEPINFO FAR* pExcepInfo,unsigned int FAR* puArgErr);
|
|
||||||
|
|
||||||
// IOleControlSite Methods
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Class AX
|
|
||||||
class AX
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
AX(char* clsid);
|
|
||||||
CLSID GetCLSID();
|
|
||||||
~AX();
|
|
||||||
|
|
||||||
|
|
||||||
void Init(char* clsid);
|
|
||||||
void Clean();
|
|
||||||
|
|
||||||
AXClientSite Site;
|
|
||||||
IID* iid;
|
|
||||||
IOleObject* OleObject;
|
|
||||||
IStorage* Storage;
|
|
||||||
IViewObject* View;
|
|
||||||
IDataObject* Data;
|
|
||||||
IUnknown* Unk;
|
|
||||||
IOleInPlaceActiveObject* Pao;
|
|
||||||
//AX_CONNECTSTRUCT* tcs;
|
|
||||||
bool AddMenu;
|
|
||||||
DWORD AdviseToken;
|
|
||||||
DWORD DAdviseToken[100];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
CLSID clsid;
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 576 B |
Binary file not shown.
|
Before Width: | Height: | Size: 637 B |
BIN
content/font/adventure.fnt
Normal file
BIN
content/font/adventure.fnt
Normal file
Binary file not shown.
BIN
content/font/anglo-small.fnt
Normal file
BIN
content/font/anglo-small.fnt
Normal file
Binary file not shown.
BIN
content/font/anglo.fnt
Normal file
BIN
content/font/anglo.fnt
Normal file
Binary file not shown.
BIN
content/font/bahaus-small.fnt
Normal file
BIN
content/font/bahaus-small.fnt
Normal file
Binary file not shown.
BIN
content/font/bahaus.fnt
Normal file
BIN
content/font/bahaus.fnt
Normal file
Binary file not shown.
BIN
content/font/baskerville-small.fnt
Normal file
BIN
content/font/baskerville-small.fnt
Normal file
Binary file not shown.
BIN
content/font/baskerville.fnt
Normal file
BIN
content/font/baskerville.fnt
Normal file
Binary file not shown.
BIN
content/font/britannic-small.fnt
Normal file
BIN
content/font/britannic-small.fnt
Normal file
Binary file not shown.
BIN
content/font/britannic.fnt
Normal file
BIN
content/font/britannic.fnt
Normal file
Binary file not shown.
BIN
content/font/broadway-small.fnt
Normal file
BIN
content/font/broadway-small.fnt
Normal file
Binary file not shown.
BIN
content/font/broadway.fnt
Normal file
BIN
content/font/broadway.fnt
Normal file
Binary file not shown.
BIN
content/font/bubble-small.fnt
Normal file
BIN
content/font/bubble-small.fnt
Normal file
Binary file not shown.
BIN
content/font/bubble.fnt
Normal file
BIN
content/font/bubble.fnt
Normal file
Binary file not shown.
BIN
content/font/burton-small.fnt
Normal file
BIN
content/font/burton-small.fnt
Normal file
Binary file not shown.
BIN
content/font/burton.fnt
Normal file
BIN
content/font/burton.fnt
Normal file
Binary file not shown.
BIN
content/font/century-small.fnt
Normal file
BIN
content/font/century-small.fnt
Normal file
Binary file not shown.
BIN
content/font/century.fnt
Normal file
BIN
content/font/century.fnt
Normal file
Binary file not shown.
BIN
content/font/colonna-small.fnt
Normal file
BIN
content/font/colonna-small.fnt
Normal file
Binary file not shown.
BIN
content/font/colonna.fnt
Normal file
BIN
content/font/colonna.fnt
Normal file
Binary file not shown.
BIN
content/font/cooper-small.fnt
Normal file
BIN
content/font/cooper-small.fnt
Normal file
Binary file not shown.
BIN
content/font/cooper.fnt
Normal file
BIN
content/font/cooper.fnt
Normal file
Binary file not shown.
BIN
content/font/courier-small.fnt
Normal file
BIN
content/font/courier-small.fnt
Normal file
Binary file not shown.
BIN
content/font/curly-small.fnt
Normal file
BIN
content/font/curly-small.fnt
Normal file
Binary file not shown.
BIN
content/font/curly.fnt
Normal file
BIN
content/font/curly.fnt
Normal file
Binary file not shown.
BIN
content/font/desmonda-small.fnt
Normal file
BIN
content/font/desmonda-small.fnt
Normal file
Binary file not shown.
BIN
content/font/desmonda.fnt
Normal file
BIN
content/font/desmonda.fnt
Normal file
Binary file not shown.
BIN
content/font/diner-small.fnt
Normal file
BIN
content/font/diner-small.fnt
Normal file
Binary file not shown.
BIN
content/font/diner.fnt
Normal file
BIN
content/font/diner.fnt
Normal file
Binary file not shown.
BIN
content/font/elephant-small.fnt
Normal file
BIN
content/font/elephant-small.fnt
Normal file
Binary file not shown.
BIN
content/font/elephant.fnt
Normal file
BIN
content/font/elephant.fnt
Normal file
Binary file not shown.
BIN
content/font/emperor-small.fnt
Normal file
BIN
content/font/emperor-small.fnt
Normal file
Binary file not shown.
BIN
content/font/emperor.fnt
Normal file
BIN
content/font/emperor.fnt
Normal file
Binary file not shown.
BIN
content/font/eurostyle-small.fnt
Normal file
BIN
content/font/eurostyle-small.fnt
Normal file
Binary file not shown.
BIN
content/font/eurostyle.fnt
Normal file
BIN
content/font/eurostyle.fnt
Normal file
Binary file not shown.
BIN
content/font/federation.fnt
Normal file
BIN
content/font/federation.fnt
Normal file
Binary file not shown.
BIN
content/font/gradl-small.fnt
Normal file
BIN
content/font/gradl-small.fnt
Normal file
Binary file not shown.
BIN
content/font/gradl.fnt
Normal file
BIN
content/font/gradl.fnt
Normal file
Binary file not shown.
BIN
content/font/led.fnt
Normal file
BIN
content/font/led.fnt
Normal file
Binary file not shown.
BIN
content/font/leditalic.fnt
Normal file
BIN
content/font/leditalic.fnt
Normal file
Binary file not shown.
BIN
content/font/news.fnt
Normal file
BIN
content/font/news.fnt
Normal file
Binary file not shown.
BIN
content/font/note-small.fnt
Normal file
BIN
content/font/note-small.fnt
Normal file
Binary file not shown.
BIN
content/font/note.fnt
Normal file
BIN
content/font/note.fnt
Normal file
Binary file not shown.
BIN
content/font/onyx-small.fnt
Normal file
BIN
content/font/onyx-small.fnt
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user