aboutsummaryrefslogtreecommitdiffstats
path: root/q3radiant/QE3.H
diff options
context:
space:
mode:
Diffstat (limited to 'q3radiant/QE3.H')
-rwxr-xr-xq3radiant/QE3.H669
1 files changed, 0 insertions, 669 deletions
diff --git a/q3radiant/QE3.H b/q3radiant/QE3.H
deleted file mode 100755
index 8b78119..0000000
--- a/q3radiant/QE3.H
+++ /dev/null
@@ -1,669 +0,0 @@
-/*
-===========================================================================
-Copyright (C) 1999-2005 Id Software, Inc.
-
-This file is part of Quake III Arena source code.
-
-Quake III Arena source code is free software; you can redistribute it
-and/or modify it under the terms of the GNU General Public License as
-published by the Free Software Foundation; either version 2 of the License,
-or (at your option) any later version.
-
-Quake III Arena source code is distributed in the hope that it will be
-useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Foobar; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-===========================================================================
-*/
-#ifndef __QE3_H__
-#define __QE3_H__
-
-// disable data conversion warnings for gl
-#pragma warning(disable : 4244) // MIPS
-#pragma warning(disable : 4136) // X86
-#pragma warning(disable : 4051) // ALPHA
-
-#include <windows.h>
-
-extern "C"
-{
-#include "qgl.h"
-}
-
-#include <math.h>
-#include <stdlib.h>
-#include <malloc.h>
-
-// this define to use HTREEITEM and MFC stuff in the headers
-#define QERTYPES_USE_MFC
-#include "qertypes.h"
-#include "../libs/cmdlib.h"
-#include "mathlib.h"
-#include "parse.h"
-#include "lbmlib.h"
-
-#include <commctrl.h>
-#include "afxres.h"
-#include "resource.h"
-
-#include "qedefs.h"
-
-#include "qfiles.h"
-
-#include "textures.h"
-#include "brush.h"
-#include "entity.h"
-#include "map.h"
-#include "select.h"
-#include "splines/splines.h"
-
-#include "camera.h"
-#include "xy.h"
-#include "z.h"
-#include "mru.h"
-
-#include "undo.h"
-
-#include "terrain.h"
-
-// the dec offsetof macro doesn't work very well...
-#define myoffsetof(type,identifier) ((size_t)&((type *)0)->identifier)
-
-
-// set these before calling CheckParm
-extern int myargc;
-extern char **myargv;
-
-double I_FloatTime (void);
-
-void Error (char *error, ...);
-void Warning (char *error, ...);
-int CheckParm (char *check);
-void ParseCommandLine (char *lpCmdLine);
-
-
-int ParseNum (char *str);
-
-
-char *COM_Parse (char *data);
-
-extern char com_token[1024];
-extern qboolean com_eof;
-
-#define MAX_NUM_ARGVS 32
-extern int argc;
-extern char *argv[MAX_NUM_ARGVS];
-
-
-typedef struct
-{
- int p1, p2;
- face_t *f1, *f2;
-} pedge_t;
-
-typedef struct
-{
- int iSize;
- int iTexMenu; // nearest, linear, etc
- float fGamma; // gamma for textures
- char szProject[256]; // last project loaded
- vec3_t colors[COLOR_LAST];
- qboolean show_names;
- qboolean show_coordinates;
- int exclude;
- int m_nTextureTweak;
-} SavedInfo_t;
-
-//
-// system functions
-//
-// TTimo NOTE: WINAPI funcs can be accessed by plugins
-void Sys_UpdateStatusBar( void );
-void WINAPI Sys_UpdateWindows (int bits);
-void Sys_Beep (void);
-void Sys_ClearPrintf (void);
-void Sys_Printf (char *text, ...);
-double Sys_DoubleTime (void);
-void Sys_GetCursorPos (int *x, int *y);
-void Sys_SetCursorPos (int x, int y);
-void Sys_SetTitle (char *text);
-void Sys_BeginWait (void);
-void Sys_EndWait (void);
-void Sys_Status(const char *psz, int part);
-
-/*
-** most of the QE globals are stored in this structure
-*/
-typedef struct
-{
- qboolean d_showgrid;
- int d_gridsize;
-
- int d_num_entities;
-
- entity_t *d_project_entity;
-
- float d_new_brush_bottom_z,
- d_new_brush_top_z;
-
- HINSTANCE d_hInstance;
-
- HGLRC d_hglrcBase;
- HDC d_hdcBase;
-
- HWND d_hwndMain;
- HWND d_hwndCamera;
- HWND d_hwndEdit;
- HWND d_hwndEntity;
- HWND d_hwndTexture;
- HWND d_hwndXY;
- HWND d_hwndZ;
- HWND d_hwndStatus;
- HWND d_hwndGroup;
- HWND d_hwndMedia;
-
- vec3_t d_points[MAX_POINTS];
- int d_numpoints;
- pedge_t d_edges[MAX_EDGES];
- int d_numedges;
-
- // terrain variables
- float d_terrainBrushSize;
- terrainnoise_t d_terrainNoiseType;
- terrainfalloff_t d_terrainFalloff;
- terrainbrush_t d_terrainBrush;
- int d_terrainWidth;
- int d_terrainHeight;
-
- terrainVert_t *d_terrapoints[MAX_TERRA_POINTS];
- int d_numterrapoints;
-
-
- int d_num_move_points;
- float *d_move_points[4096];
-
- qtexture_t *d_qtextures;
-
- texturewin_t d_texturewin;
-
- int d_pointfile_display_list;
-
- xy_t d_xyOld;
-
- LPMRUMENU d_lpMruMenu;
-
- SavedInfo_t d_savedinfo;
-
- int d_workcount;
-
- // connect entities uses the last two brushes selected
- int d_select_count;
- brush_t *d_select_order[2];
- vec3_t d_select_translate; // for dragging w/o making new display lists
- select_t d_select_mode;
- idPointListInterface *selectObject; //
-
- int d_font_list;
-
- int d_parsed_brushes;
-
- qboolean show_blocks;
-
- // Timo
- // tells if we are internally using brush primitive (texture coordinates and map format)
- // this is a shortcut for IntForKey( g_qeglobals.d_project_entity, "brush_primit" )
- // NOTE: must keep the two ones in sync
- BOOL m_bBrushPrimitMode;
-
- // used while importing brush data from file or memory buffer
- // tells if conversion between map format and internal preferences ( m_bBrushPrimitMode ) is needed
- qboolean bNeedConvert;
- qboolean bOldBrushes;
- qboolean bPrimitBrushes;
-
- vec3_t d_vAreaTL;
- vec3_t d_vAreaBR;
-
- // tells if we are using .INI files for prefs instead of registry
- qboolean use_ini;
- // even in .INI mode we use the registry for all void* prefs
- char use_ini_registry[64];
-
- //Timo
- // tells we have surface properties plugin
- qboolean bSurfacePropertiesPlugin;
- // tells we are using a BSP frontend plugin
- qboolean bBSPFrontendPlugin;
-
- qboolean dontDrawSelectedOutlines;
-
-} QEGlobals_t;
-
-//void *qmalloc (size_t size);
-char *copystring (char *s);
-char *ExpandReletivePath (char *p);
-
-void Pointfile_Delete (void);
-void WINAPI Pointfile_Check (void);
-void Pointfile_Next (void);
-void Pointfile_Prev (void);
-void Pointfile_Clear (void);
-void Pointfile_Draw( void );
-void Pointfile_Load( void );
-
-//
-// drag.c
-//
-void Drag_Begin (int x, int y, int buttons,
- vec3_t xaxis, vec3_t yaxis,
- vec3_t origin, vec3_t dir);
-void Drag_MouseMoved (int x, int y, int buttons);
-void Drag_MouseUp (int nButtons = 0);
-
-//
-// csg.c
-//
-void CSG_MakeHollow (void);
-void CSG_Subtract (void);
-void CSG_Merge (void);
-
-//
-// vertsel.c
-//
-
-void SetupVertexSelection (void);
-void SelectEdgeByRay (vec3_t org, vec3_t dir);
-void SelectVertexByRay (vec3_t org, vec3_t dir);
-
-void ConnectEntities (void);
-
-extern int update_bits;
-
-extern int screen_width;
-extern int screen_height;
-
-extern HANDLE bsp_process;
-extern HANDLE g_hBSPOutput;
-extern HANDLE g_hBSPInput;
-
-
-char *TranslateString (char *buf);
-
-void ProjectDialog (void);
-
-void FillTextureMenu (CStringArray* pArray = NULL);
-void FillBSPMenu (void);
-
-BOOL CALLBACK Win_Dialog (
- HWND hwndDlg, // handle to dialog box
- UINT uMsg, // message
- WPARAM wParam, // first message parameter
- LPARAM lParam // second message parameter
-);
-
-
-//
-// win_cam.c
-//
-void WCam_Create (HINSTANCE hInstance);
-
-
-//
-// win_xy.c
-//
-void WXY_Create (HINSTANCE hInstance);
-
-//
-// win_z.c
-//
-void WZ_Create (HINSTANCE hInstance);
-
-//
-// win_ent.c
-//
-
-
-//
-// win_main.c
-//
-void Main_Create (HINSTANCE hInstance);
-extern BOOL SaveWindowState(HWND hWnd, const char *pszName);
-extern BOOL LoadWindowState(HWND hWnd, const char *pszName);
-
-extern BOOL SaveRegistryInfo(const char *pszName, void *pvBuf, long lSize);
-extern BOOL LoadRegistryInfo(const char *pszName, void *pvBuf, long *plSize);
-
-//
-// entityw.c
-//
-BOOL CreateEntityWindow(HINSTANCE hInstance);
-void FillClassList (void);
-BOOL UpdateEntitySel(eclass_t *pec);
-void SetInspectorMode(int iType);
-int DrawTexControls(HWND hWnd);
-void SetSpawnFlags(void);
-void GetSpawnFlags(void);
-void SetKeyValuePairs(bool bClearMD3 = false);
-extern void BuildGammaTable(float g);
-BOOL GetSelectAllCriteria(CString &strKey, CString &strVal);
-
-
-// win_dlg.c
-
-void DoGamma(void);
-void DoFind(void);
-void DoRotate(void);
-void DoSides(bool bCone = false, bool bSphere = false, bool bTorus = false);
-void DoAbout(void);
-void DoSurface();
-
-/*
-** QE function declarations
-*/
-void QE_CheckAutoSave( void );
-void WINAPI QE_ConvertDOSToUnixName( char *dst, const char *src );
-void QE_CountBrushesAndUpdateStatusBar( void );
-void WINAPI QE_CheckOpenGLForErrors(void);
-void QE_ExpandBspString (char *bspaction, char *out, char *mapname, bool useTemps);
-void QE_Init (void);
-qboolean QE_KeyDown (int key, int nFlags = 0);
-qboolean QE_LoadProject (char *projectfile);
-qboolean QE_SingleBrush (bool bQuiet = false);
-
-
-// sys stuff
-void Sys_MarkMapModified (void);
-
-/*
-** QE Win32 function declarations
-*/
-int WINAPI QEW_SetupPixelFormat(HDC hDC, qboolean zbuffer );
-void QEW_StopGL( HWND hWnd, HGLRC hGLRC, HDC hDC );
-
-/*
-** extern declarations
-*/
-extern QEGlobals_t g_qeglobals;
-
-//++timo clean (moved into qertypes.h)
-//enum VIEWTYPE {YZ, XZ, XY};
-qboolean IsBrushSelected(brush_t* bSel);
-
-// curve brushes
-
-void Curve_MakeCurvedBrush (qboolean negative, qboolean top, qboolean bottom,
- qboolean s1, qboolean s2, qboolean s3, qboolean s4);
-
-void Curve_Invert (void);
-
-void Curve_AddFakePlanes( brush_t *B );
-void Curve_StripFakePlanes( brush_t *B );
-void Curve_BuildPoints (brush_t *b);
-void Curve_XYDraw (brush_t *b);
-void Curve_CameraDraw (brush_t *b);
-
-void Curve_WriteFile (char *name);
-
-
-// patch stuff
-
-extern bool g_bSameView;
-extern int g_nPatchClickedView;
-bool within(vec3_t vTest, vec3_t vTL, vec3_t vBR);
-
-void Brush_RebuildBrush(brush_t *b, vec3_t vMins, vec3_t vMaxs );
-patchMesh_t* MakeNewPatch();
-brush_t* AddBrushForPatch(patchMesh_t *pm, bool bLinkToWorld = true);
-brush_t* Patch_GenericMesh(int nWidth, int nHeight, int nOrientation = 2, bool bDeleteSource = true, bool bOverride = false);
-void Patch_ReadFile (char *name);
-void Patch_WriteFile (char *name);
-void Patch_BuildPoints (brush_t *b);
-void Patch_Move(patchMesh_t *p, const vec3_t vMove, bool bRebuild = false);
-//++timo had to add a default value for bSnap (see Patch_ApplyMatrix call from Select_ApplyMatrix in select.cpp)
-void Patch_ApplyMatrix(patchMesh_t *p, const vec3_t vOrigin, const vec3_t vMatrix[3], bool bSnap = false);
-void Patch_EditPatch();
-void Patch_Deselect();
-void Patch_Deselect(patchMesh_t *p);
-void Patch_Delete(patchMesh_t *p);
-int Patch_MemorySize(patchMesh_t *p);
-void Patch_Select(patchMesh_t *p);
-void Patch_Scale(patchMesh_t *p, const vec3_t vOrigin, const vec3_t vAmt, bool bRebuilt = true);
-void Patch_Cleanup();
-void Patch_SetView(int n);
-void Patch_SetTexture(patchMesh_t *p, texdef_t *tex_def, IPluginTexdef* pPlugTexdef = NULL);
-void Patch_BrushToMesh(bool bCone = false, bool bBevel = false, bool bEndcap = false, bool bSquare = false, int nHeight = 3);
-bool Patch_DragScale(patchMesh_t *p, vec3_t vAmt, vec3_t vMove);
-void Patch_ReadBuffer(char* pBuff, bool bSelect = false);
-void Patch_WriteFile (CMemFile* pMemFile);
-void Patch_UpdateSelected(vec3_t vMove);
-void Patch_AddRow(patchMesh_t *p);
-brush_t* Patch_Parse(bool bOld);
-void Patch_Write (patchMesh_t *p, FILE *f);
-void Patch_Write (patchMesh_t *p, CMemFile *file);
-void Patch_AdjustColumns(patchMesh_t *p, int nCols);
-void Patch_AdjustRows(patchMesh_t *p, int nRows);
-void Patch_AdjustSelected(bool bInsert, bool bColumn, bool bFlag);
-patchMesh_t* Patch_Duplicate(patchMesh_t *pFrom);
-void Patch_RotateTexture(patchMesh_t *p, float fAngle);
-void Patch_ScaleTexture(patchMesh_t *p, float fx, float fy, bool bFixup = true);
-void Patch_ShiftTexture(patchMesh_t *p, float fx, float fy);
-void Patch_DrawCam(patchMesh_t *p);
-void Patch_DrawXY(patchMesh_t *p);
-void Patch_InsertColumn(patchMesh_t *p, bool bAdd);
-void Patch_InsertRow(patchMesh_t *p, bool bAdd);
-void Patch_RemoveRow(patchMesh_t *p, bool bFirst);
-void Patch_RemoveColumn(patchMesh_t *p, bool bFirst);
-void Patch_ToggleInverted();
-void Patch_Restore(patchMesh_t *p);
-void Patch_Save(patchMesh_t *p);
-void Patch_SetTextureInfo(texdef_t* pt);
-void Patch_NaturalTexturing();
-void Patch_ResetTexturing(float fx, float fy);
-void Patch_FitTexturing();
-void Patch_BendToggle();
-void Patch_StartInsDel();
-void Patch_BendHandleTAB();
-void Patch_BendHandleENTER();
-void Patch_SelectBendNormal();
-void Patch_SelectBendAxis();
-bool WINAPI OnlyPatchesSelected();
-bool WINAPI AnyPatchesSelected();
-patchMesh_t* SinglePatchSelected();
-void Patch_CapCurrent(bool bInvertedBevel = false, bool bInvertedEndcap = false);
-void Patch_DisperseRows();
-void Patch_DisperseColumns();
-void Patch_NaturalizeSelected(bool bCap = false, bool bCycleCap = false);
-void Patch_SelectAreaPoints();
-void Patch_InvertTexture(bool bY);
-void Patch_InsDelToggle();
-void Patch_InsDelHandleTAB();
-void Patch_InsDelHandleENTER();
-void Patch_SetOverlays();
-void Patch_ClearOverlays();
-void Patch_Thicken(int nAmount, bool bSeam);
-void Patch_Transpose();
-void Patch_Freeze();
-void Patch_UnFreeze(bool bAll);
-const char* Patch_GetTextureName();
-void Patch_FindReplaceTexture(brush_t *pb, const char *pFind, const char *pReplace, bool bForce);
-void Patch_ReplaceQTexture(brush_t *pb, qtexture_t *pOld, qtexture_t *pNew);
-void Select_SnapToGrid();
-extern bool g_bPatchShowBounds;
-extern bool g_bPatchWireFrame;
-extern bool g_bPatchWeld;
-extern bool g_bPatchDrillDown;
-extern bool g_bPatchInsertMode;
-extern bool g_bPatchBendMode;
-extern vec3_t g_vBendOrigin;
-void Patch_FromTriangle(vec5_t vx, vec5_t vy, vec5_t vz);
-const char* Patch_GetKeyValue(patchMesh_t *p, const char *pKey);
-void Patch_SetEpair(patchMesh_t *p, const char *pKey, const char *pValue);
-
-
-
-// group stuff
-// group_t are loaded / saved through "group_info" entities
-// they hold epairs for group settings and additionnal access info (tree nodes)
-typedef struct group_s
-{
- struct group_s *next;
- epair_t *epairs;
- HTREEITEM itemOwner;
-} group_t;
-
-// NOTES: grouping only enabled in brush primitives mode
-// grouping works by naming brushes and setting display properties
-// the group hierarchy is not related with the map hierarchy (entity list, brushes etc.)
-// brushes with no group are under the "world" node (default for all brushes)
-// void Group_GetListFromWorld(CStringArray *pArray);
-void Group_RemoveListFromWorld();
-// void Group_SetListToWorld(CStringArray *pArray);
-// void Group_BuildTree(CTreeCtrl *pTree);
-// void Group_DecomposeTree(CTreeCtrl *pTree);
-// save group_t as "classname" "group_info" things
-void Group_Save(FILE *f);
-// clean the brushes ownerItem, clean the treeview and rebuild everything
-// is usually called when loading a new map, but may be called anytime
-void Group_Init();
-void Group_Add(entity_t *e);
-
-// remove a brush from it's current group, will erase the "group" epair if any, and delete the tree control node
-void Group_RemoveBrush(brush_t *b);
-void Group_AddToWorld(brush_t *b);
-// will remove brush of it's current group if any, and will add it wherever needed according to it's "group" key
-void Group_AddToProperGroup(brush_t *b);
-void Group_AddToSelected(brush_t *b);
-// allocate a new group, set name
-group_t* Group_Alloc(const char *name);
-// we use entities to store information about the groups
-// these entities are not linked into the world, and they have no brushes
-// only loaded / saved in map file
-group_t* Group_ForName(const char *name);
-
-// Timo
-// new brush primitive stuff
-void ComputeAxisBase(vec3_t normal,vec3_t texS,vec3_t texT );
-void FaceToBrushPrimitFace(face_t *f);
-void EmitBrushPrimitTextureCoordinates(face_t *, winding_t *);
-// EmitTextureCoordinates, is old code used for brush to brush primitive conversion
-void EmitTextureCoordinates ( float *xyzst, qtexture_t *q, face_t *f);
-void BrushPrimit_Parse(brush_t *);
-// compute a fake shift scale rot representation from the texture matrix
-void TexMatToFakeTexCoords( vec_t texMat[2][3], float shift[2], float *rot, float scale[2] );
-void FakeTexCoordsToTexMat( float shift[2], float rot, float scale[2], vec_t texMat[2][3] );
-void ConvertTexMatWithQTexture( brushprimit_texdef_t *texMat1, qtexture_t *qtex1, brushprimit_texdef_t *texMat2, qtexture_t *qtex2 );
-// texture locking
-void Face_MoveTexture_BrushPrimit(face_t *f, vec3_t delta);
-void Select_ShiftTexture_BrushPrimit( face_t *f, int x, int y );
-void RotateFaceTexture_BrushPrimit(face_t *f, int nAxis, float fDeg, vec3_t vOrigin );
-// used in CCamWnd::ShiftTexture_BrushPrimit
-void ComputeBest2DVector( vec3_t v, vec3_t X, vec3_t Y, int &x, int &y );
-
-
-//
-// eclass.cpp
-//
-extern qboolean parsing_single;
-extern qboolean eclass_found;
-extern eclass_t *eclass_e;
-void Eclass_ScanFile( char *filename );
-
-// for interfaces, we require main plugin header included
-#include "qerplugin.h"
-
-//
-// SurfaceDlg.cpp and surface properties plugin
-//
-//++timo some patch in/out stuff is in there, needs to be moved out in a dedicated interface
-void WINAPI Patch_Rebuild(patchMesh_t *p);
-#include "isurfaceplugin.h"
-extern _QERPlugSurfaceTable g_SurfaceTable;
-
-//
-// OpenGL interface
-//
-#include "igl.h"
-HGLRC WINAPI QERApp_GetQeglobalsHGLRC();
-void WINAPI QERApp_HookXYGLWindow(IGLWindow* pGLW);
-void WINAPI QERApp_UnHookGLWindow(IGLWindow* pGLW);
-void DrawPluginEntities( VIEWTYPE vt );
-
-//
-// ISelectedFace interface
-//
-#include "ISelectedFace.h"
-int WINAPI QERApp_ISelectedFace_GetTextureNumber();
-int WINAPI QERApp_GetFaceInfo(_QERFaceData *pFaceData, winding_t *pWinding);
-int WINAPI QERApp_SetFaceInfo(_QERFaceData *pFaceData);
-void WINAPI QERApp_GetTextureSize( int Size[2] );
-
-//
-// IEpairs interface
-//
-#include "IEpairs.h"
-#include "EpairsWrapper.h"
-
-//
-// IPluginEntities interface
-//
-#include "IPluginEntities.h"
-int WINAPI QERApp_EClassScanDir( char *dir, HMODULE plugID );
-
-//
-// ShaderInfo.cpp
-//
-#include "ShaderInfo.h"
-
-//
-// TexWnd.cpp
-//
-CShaderInfo* hasShader(const char *pName);
-
-//
-// IScripLib interface
-// GetToken, UnGetToken, etc.
-#include "IScriplib.h"
-extern FILE *g_File;
-void WINAPI QERApp_MapPrintf_FILE( char *text, ... );
-
-//
-// ISurfacePlugin interface
-//
-void WINAPI QERApp_GetTwoSelectedPatch( patchMesh_t **p1, patchMesh_t **p2 );
-
-//
-// IBSPFrontend interface
-//
-#include "IBSPFrontend.h"
-extern _QERPlugBSPFrontendTable g_BSPFrontendTable;
-extern CStringArray g_BSPFrontendCommands;
-
-//
-// IMessaging interface
-#include "IMessaging.h"
-#include "Messaging.h"
-void WINAPI QERApp_HookWindow(IWindowListener* pListen);
-void WINAPI QERApp_UnHookWindow(IWindowListener* pListen);
-IXYWndWrapper* WINAPI QERApp_GetXYWndWrapper();
-void WINAPI QERApp_HookListener(IListener* pListen, int Msg);
-int WINAPI QERApp_UnHookListener(IListener* pListen);
-void DispatchRadiantMsg( int Msg );
-// dispatch for IWindowListener entities
-void DispatchOnMouseMove(UINT nFlags, int x, int y);
-bool DispatchOnLButtonDown(UINT nFlags, int x, int y);
-bool DispatchOnLButtonUp(UINT nFlags, int x, int y);
-
-//
-// IShaders interface
-CShaderInfo* SetNameShaderInfo(qtexture_t* q, const char* pPath, const char* pName);
-qtexture_t* Texture_LoadTGATexture (unsigned char* pPixels, int nWidth, int nHeight, char* pPath, int nFlags, int nContents, int nValue );
-#include "IShaders.h"
-qtexture_t* WINAPI QERApp_TryTextureForName(const char* name);
-
-
-
-#endif