+#ifdef __APPLE__
+#define __toascii(c) ((c) & 0x7f)
+#endif
+
+const int RAD_SHIFT = 0x01;
+const int RAD_ALT = 0x02;
+const int RAD_CONTROL = 0x04;
+const int RAD_PRESS = 0x08;
+
+struct SCommandInfo
+{
+ char* m_strCommand;
+ unsigned int m_nKey;
+ unsigned int m_nModifiers;
+ unsigned int m_nCommand;
+ char* m_strMenu;
+};
+
+struct SKeyInfo
+{
+ const char* m_strName;
+ unsigned int m_nVKKey;
+};
+
+#define ID_FILE_NEW 0xE100
+#define ID_FILE_OPEN 0xE101
+#define ID_FILE_SAVE 0xE103
+#define ID_EDIT_UNDO 0xE12B
+#define ID_EDIT_REDO 0xE12C
+#define ID_HELP 0xE146
+#define ID_FILE_RECENT1 0xE110
+#define ID_FILE_RECENT2 0xE111
+#define ID_FILE_RECENT3 0xE112
+#define ID_FILE_RECENT4 0xE113
+
+#define IDC_BTN_FACEFIT 1143
+#define ID_ENTITY_START 22800
+#define ID_ENTITY_END 32000 //leo
+//#define ID_ENTITY_END 33500
+#define ID_VIEW_XY 32772
+#define ID_VIEW_SIDE 32773
+#define ID_VIEW_FRONT 32774
+#define ID_CAMERATOGGLE 32775
+#define ID_VIEW_CAMERATOGGLE 32776
+#define ID_BUTTON32777 32777
+#define ID_BUTTON32778 32778
+#define ID_TEXTURES_POPUP 32780
+#define ID_POPUP_SELECTION 32782
+#define ID_VIEW_CHANGE 32783
+#define ID_VIEW_CAMERAUPDATE 32784
+#define ID_VIEW_CLIPPER 32785
+#define ID_PREFS 32786
+#define ID_TOGGLE_LOCK 32787
+#define ID_EDIT_MAPINFO 32788
+#define ID_EDIT_ENTITYINFO 32789
+#define ID_BRUSH_SCRIPTS 32790
+#define ID_VIEW_NEXTVIEW 32791
+#define ID_HELP_COMMANDLIST 32792
+#define ID_FILE_NEWPROJECT 32793
+#define ID_SNAPTOGRID 32795
+#define ID_VIEW_CENTERVIEW 32796
+#define ID_SPLIT_SELECTED 32823
+#define ID_CLIP_SELECTED 32824
+#define ID_FLIP_CLIP 32825
+#define ID_TOGGLEVIEW_YZ 32831
+#define ID_TOGGLEVIEW_XZ 32832
+#define ID_COLORS_GRIDTEXT 32833
+#define ID_COLORS_BRUSH 32834
+#define ID_COLORS_SELECTEDBRUSH 32835
+#define ID_COLORS_CLIPPER 32836
+#define ID_COLORS_GRIDBLOCK 32837
+#define ID_COLORS_VIEWNAME 32838
+#define ID_COLOR_SETORIGINAL 32839
+#define ID_COLOR_SETQER 32840
+#define ID_COLOR_SETBLACK 32841
+#define ID_COLOR_SETYDNAR 37001 /* ydnar */
+#define ID_BYEBYE 32842
+#define ID_SELECT_SCALE 32843
+#define ID_SELECT_MOUSEROTATE 32844
+#define ID_COLORS_SELECTEDBRUSH3D 32845
+#define ID_COLORS_CAMERABACK 32846
+#define ID_TEXTURE_REPLACESELECTED 32859
+#define ID_TEXTURE_REPLACEALL 32860
+#define ID_SELECT_MOUSESCALE 32866
+#define ID_SCALELOCKX 32867
+#define ID_SCALELOCKY 32868
+#define ID_SCALELOCKZ 32869
+#define ID_VIEW_CUBICCLIPPING 32870
+#define ID_FILE_PROJECTSETTINGS 32875
+#define ID_VIEW_CUBEOUT 32876
+#define ID_VIEW_CUBEIN 32877
+#define ID_NODES_LOADNODES 32878
+#define ID_NODES_SHOWNODES 32879
+#define ID_NODES_SHOWLINKS 32880
+#define ID_NODES_REMOVEALLNODES 32881
+#define ID_NODES_COUNTNODES 32882
+#define ID_NODES_GIVEMONEYTONELNO 32883
+#define ID_FILE_SAVEREGION 32887
+#define ID_FILE_LOADREGION 32888
+#define ID_SELECTION_MOVEDOWN 32890
+#define ID_TOOLBAR_MAIN 32891
+#define ID_SELECTION_MOVEUP 32892
+//#define ID_TOOLBAR_TEXTURE 32892
+#define ID_BRUSH_MAKECONE 32896
+#define ID_TEXTURES_LOAD 32897
+#define ID_TOGGLE_ROTATELOCK 32898
+#define ID_FILE_IMPORTMAP 32911
+#define ID_FILE_EXPORTMAP 32912
+#define ID_EDIT_LOADPREFAB 32913
+#define ID_SELECTION_SELECT_NUDGELEFT 32916
+#define ID_SELECTION_SELECT_NUDGERIGHT 32917
+#define ID_SELECTION_SELECT_NUDGEUP 32918
+#define ID_SELECTION_SELECT_NUDGEDOWN 32919
+#define ID_TEXTURES_LOADLIST 32920
+#define ID_DONTSELECTCURVE 32923
+#define ID_CONVERTCURVES 32924
+#define ID_PATCH_SHOWBOUNDINGBOX 32926
+#define ID_CURVE_SIMPLEPATCHMESH 32927
+#define ID_PATCH_WIREFRAME 32928
+#define ID_PATCH_WELD 32929
+#define ID_CURVE_PATCHTUBE 32930
+#define ID_CURVE_PATCHCONE 32931
+#define ID_CURVE_PATCHENDCAP 32932
+#define ID_CURVE_PATCHBEVEL 32933
+#define ID_PATCH_DRILLDOWN 32936
+#define ID_CURVE_LOADPATCHFILE 32937
+#define ID_CURVE_INSERTROW 32938
+#define ID_CURVE_INSERTCOLUMN 32939
+#define ID_CURVE_DELETEROW 32940
+#define ID_CURVE_DELETECOLUMN 32941
+#define ID_BUTTON32942 32942
+//#define ID_PATCH_INSDEL 32942
+#define ID_CURVE_INSERT_ADDCOLUMN 32943
+#define ID_CURVE_INSERT_INSERTCOLUMN 32944
+#define ID_CURVE_INSERT_ADDROW 32945
+#define ID_CURVE_INSERT_INSERTROW 32946
+#define ID_CURVE_DELETE_FIRSTCOLUMN 32947
+#define ID_CURVE_DELETE_LASTCOLUMN 32948
+#define ID_CURVE_DELETE_FIRSTROW 32949
+#define ID_CURVE_DELETE_LASTROW 32950
+#define ID_CURVE_NEGATIVE 32951
+#define ID_PATCH_BEND 32952
+#define ID_CURVE_PATCHDENSETUBE 32955
+#define ID_CURVE_PATCHVERYDENSETUBE 32956
+#define ID_CURVE_CAP 32957
+#define ID_CURVE_REDISPERSE_ROWS 32961
+#define ID_PATCH_NATURALIZE 32963
+#define ID_CURVE_PATCHSQUARE 32964
+#define ID_BRUSH_PRIMITIVES_SPHERE 32965
+#define ID_BRUSH_PRIMITIVES_TORUS 32966
+#define ID_TEXTURES_TEXTUREWINDOWSCALE_200 32967
+#define ID_TEXTURES_TEXTUREWINDOWSCALE_100 32968
+#define ID_TEXTURES_TEXTUREWINDOWSCALE_50 32969
+#define ID_TEXTURES_TEXTUREWINDOWSCALE_25 32970
+#define ID_TEXTURES_TEXTUREWINDOWSCALE_10 32971
+#define ID_CURVE_NEGATIVETEXTUREX 32972
+#define ID_TEXTURES_FLUSH 32973
+#define ID_CURVE_OVERLAY_SET 32974
+#define ID_CURVE_OVERLAY_CLEAR 32975
+#define ID_CURVE_NEGATIVETEXTUREY 32976
+#define ID_CURVE_THICKEN 32977
+#define ID_CURVE_CYCLECAP 32978
+#define ID_CURVE_MATRIX_TRANSPOSE 32981
+#define ID_PLUGINS_REFRESH 32982
+#define ID_TEXTURES_RELOADSHADERS 32983
+#define ID_VIEW_ENTITIESAS_BOUNDINGBOX 32984
+#define ID_VIEW_ENTITIESAS_WRITEFRAME 32985
+#define ID_VIEW_ENTITIESAS_SELECTEDWIREFRAME 32986
+#define ID_VIEW_ENTITIESAS_SELECTEDSKINNED 32987
+#define ID_VIEW_ENTITIESAS_SKINNED 32988
+#define ID_VIEW_ENTITIESAS_SKINNEDANDBOXED 32989
+#define ID_SHOW_ENTITIES 32990
+#define ID_VIEW_ENTITIESAS_WIREFRAME 32991
+#define ID_VIEW_OPENGLLIGHTING 32998
+#define ID_EDIT_SAVEPREFAB 33001
+#define ID_CURVE_MOREENDCAPSBEVELS_SQUAREENDCAP 33002
+#define ID_CURVE_MOREENDCAPSBEVELS_SQUAREBEVEL 33003
+#define ID_CURVE_PRIMITIVES_SPHERE 33005
+#define ID_VIEW_HIDESHOW_HIDESELECTED 33006
+#define ID_VIEW_HIDESHOW_SHOWHIDDEN 33007
+#define ID_TEXTURES_SHADERS_SHOW 33008
+//#define ID_SELECTION_CSGADD 33009
+#define ID_SELECTION_CSGMERGE 33011
+#define ID_TEXTURES_FLUSH_UNUSED 33014
+#define ID_DROP_GROUP_REMOVE 33016
+#define ID_DROP_GROUP_ADDTO_WORLD 33017
+#define ID_DROP_GROUP_NEWGROUP 33018
+#define ID_DROP_GROUP_NAME 33019
+#define ID_DROP_GROUP_ADDTO 33020
+#define ID_VIEW_SHOWANGLES 33021
+#define ID_VIEW_SHOWWORKZONE 33022
+#define ID_TEXTURE_FLUSH 33023
+#define ID_TEXTURES_SHOWSHADERS 33025
+#define ID_DONTSELECTMODEL 33027
+#define ID_TEXTURES_SHADERLISTONLY 33030
+#define ID_PLUGIN_START 33800
+#define ID_PLUGIN_END 33999
+#define ID_FILE_EXIT 40002
+#define ID_FILE_SAVEAS 40004
+#define ID_VIEW_CENTER 40005
+#define ID_VIEW_UPFLOOR 40006
+#define ID_VIEW_DOWNFLOOR 40007
+#define ID_BRUSH_FLIPX 40008
+#define ID_BRUSH_FLIPY 40009
+#define ID_BRUSH_FLIPZ 40010
+#define ID_BRUSH_ROTATEX 40011
+#define ID_BRUSH_ROTATEY 40012
+#define ID_BRUSH_ROTATEZ 40013
+#define ID_BSP_FULLVIS 40016
+#define ID_BSP_FASTVIS 40017
+#define ID_BSP_NOVIS 40018
+#define ID_BSP_RELIGHT 40019
+#define ID_BSP_ENTITIES 40020
+#define ID_FILE_POINTFILE 40021
+#define ID_VIEW_100 40022
+#define ID_VIEW_75 40023
+#define ID_VIEW_50 40024
+#define ID_VIEW_25 40025
+#define ID_VIEW_12 40026
+#define ID_TEXTURES_SHOWALL 40033
+#define ID_TEXTURES_SHOWINUSE 40034
+#define ID_TEXTURES_TOGGLEVIEW 40037
+#define ID_SELECTION_CREATEENTITY 40039
+#define ID_SELECTION_EDITENTITY 40040
+#define ID_MISC_BENCHMARK 40041
+#define ID_REGION_OFF 40043
+#define ID_REGION_SETXY 40044
+#define ID_REGION_SETBRUSH 40045
+#define ID_SELECTION_MAKEHOLLOW 40046
+#define ID_SELECTION_SELECTPARTIALTALL 40047
+#define ID_SELECTION_SELECTCOMPLETETALL 40048
+#define ID_SELECTION_CSGSUBTRACT 40049
+#define ID_SELECTION_SELECTTOUCHING 40050
+#define ID_VIEW_NEAREST 40052
+#define ID_VIEW_NEARESTMIPMAP 40053
+#define ID_VIEW_LINEAR 40054
+#define ID_VIEW_BILINEAR 40055
+#define ID_VIEW_BILINEARMIPMAP 40056
+#define ID_VIEW_TRILINEAR 40057
+#define ID_TEXTURES_WIREFRAME 40058
+#define ID_TEXTURES_FLATSHADE 40059
+#define ID_VIEW_SHOWNAMES 40060
+#define ID_VIEW_ZOOMIN 40061
+#define ID_VIEW_ZOOMOUT 40062
+#define ID_VIEW_SHOWCOORDINATES 40063
+#define ID_VIEW_Z100 40064
+#define ID_VIEW_ZZOOMIN 40065
+#define ID_VIEW_ZZOOMOUT 40066
+#define ID_SELECTION_CLONE 40067
+#define ID_SELECTION_DESELECT 40068
+#define ID_SELECTION_DELETE 40069
+#define ID_BUTTON40068 40070
+#define ID_SELECTION_DRAGVERTECIES 40074
+#define ID_SELECTION_DRAGEDGES 40075
+#define ID_REGION_SETTALLBRUSH 40076
+#define ID_SELECTION_SELECTINSIDE 40092
+#define ID_PROJECT_RELEAD 40094
+#define ID_PROJECT_CHANGE 40095
+#define ID_MISC_GAMMA 40097
+#define ID_MISC_TEXTUREBACKGROUN 40104
+#define ID_TEXTUREBK 40105
+#define ID_COLORS_XYBK 40106
+#define ID_FILE_ABOUT 40107
+#define ID_VIEW_CONSOLE 40108
+#define ID_VIEW_ENTITY 40109
+#define ID_VIEW_TEXTURE 40110
+#define ID_COLORS_MAJOR 40111
+#define ID_COLORS_MINOR 40113
+#define ID_SELECTION_CONNECT 40114
+#define ID_FILE_LOADPROJECT 40115
+#define ID_MISC_FINDBRUSH 40116
+#define ID_MISC_NEXTLEAKSPOT 40117
+#define ID_MISC_PREVIOUSLEAKSPOT 40118
+#define ID_BRUSH_3SIDED 40119
+#define ID_BRUSH_4SIDED 40120
+#define ID_BRUSH_5SIDED 40121
+#define ID_BRUSH_6SIDED 40122
+#define ID_BRUSH_7SIDED 40123
+#define ID_BRUSH_8SIDED 40124
+#define ID_BRUSH_9SIDED 40125
+#define ID_SELECTION_ARBITRARYROTATION 40126
+#define ID_BRUSH_ARBITRARYSIDED 40127
+#define ID_SELECTION_UNGROUPENTITY 40130
+#define ID_MISC_SELECTENTITYCOLOR 40131
+#define ID_MISC_PRINTXY 40132
+#define ID_HELP_ABOUT 40134
+#define ID_EDIT_COPYBRUSH 40135
+#define ID_EDIT_PASTEBRUSH 40136
+#define ID_TEXTURES_INSPECTOR 40137
+#define ID_SELECTION_MAKE_DETAIL 40139
+#define ID_SELECTION_MAKE_STRUCTURAL 40140
+#define ID_REGION_SETSELECTION 40141
+#define ID_VIEW_SHOWBLOCKS 40142
+#define ID_CAMERA_UP 40152
+#define ID_CAMERA_DOWN 40153
+#define ID_CAMERA_LEFT 40154
+#define ID_CAMERA_RIGHT 40155
+#define ID_CAMERA_FORWARD 40156
+#define ID_CAMERA_BACK 40157
+#define ID_CAMERA_ANGLEUP 40158
+#define ID_CAMERA_ANGLEDOWN 40159
+#define ID_CAMERA_STRAFELEFT 40160
+#define ID_CAMERA_STRAFERIGHT 40161
+#define ID_GRID_TOGGLE 40162
+#define ID_ENTITYLIST 40163
+#define ID_MAPINFO 40164
+#define ID_TOGGLECONSOLE 40165
+#define ID_TOGGLECAMERA 40166
+#define ID_TOGGLEZ 40167
+#define ID_TOGGLEVIEW 40168
+#define ID_SELECTION_TEXTURE_FIT 40171
+#define ID_SELECTION_TEXTURE_ROTATECLOCK 40172
+#define ID_SELECTION_TEXTURE_ROTATECOUNTER 40173
+#define ID_SELECTION_TEXTURE_SCALEUP 40174
+#define ID_SELECTION_TEXTURE_SCALEDOWN 40175
+#define ID_SELECTION_TEXTURE_SHIFTLEFT 40176
+#define ID_SELECTION_TEXTURE_SHIFTRIGHT 40177
+#define ID_SELECTION_TEXTURE_SHIFTUP 40178
+#define ID_SELECTION_TEXTURE_SHIFTDOWN 40179
+#define ID_GRID_NEXT 40180
+#define ID_GRID_PREV 40181
+#define ID_SELECTION_TEXTURE_SCALELEFT 40182
+#define ID_SELECTION_TEXTURE_SCALERIGHT 40183
+#define ID_SELECTION_PRINT 40184
+#define ID_SELECTION_TOGGLESIZEPAINT 40185
+#define ID_PATCH_TAB 40186
+#define ID_PATCH_ENTER 40187
+#define ID_SELECT_SNAPTOGRID 40188
+#define ID_PATCH_INSPECTOR 40189
+#define ID_SELECT_ALL 40190
+#define ID_CURVE_FREEZE 40191
+#define ID_CURVE_UNFREEZE 40192
+#define ID_CURVE_UNFREEZEALL 40193
+#define ID_SELECT_RESELECT 40194
+#define ID_FITFACE 40196
+#define ID_VIEW_CROSSHAIR 40197
+#define ID_SELECTION_INVERT 40198
+#define ID_VIEW_GROUPS 40199
+#define ID_FILE_SLEEP 40200
+#define ID_HELP_LINKS 40201
+#define ID_VIEW_SHOWOUTLINE 40202 // TTimo: outline as in colored outline around the window to quickly guess the orientation
+#define ID_VIEW_SHOWAXES 40203
+#define ID_SELECTION_NOOUTLINE 40204 // TTimo: outline as in zbuffered outline toggle on camera view (TA Q3Radiant 200f addition)
+#define ID_SELECTION_OUTLINESTYLE 40205 // Arnout: cycles through selection styles (extended 'nooutline')
+#define ID_SELECTION_SEPERATE 40206 // TTimo: split brushes out of an entity back into worldspawn
+#define ID_SELECTION_MERGE 40207 // TTimo: merge brushes from worldspawn into entity
+#define ID_HELP_BUGREPORT 40208
+
+#define ID_FILTER_WORLD 40209
+#define ID_FILTER_PATCHES 40210
+#define ID_FILTER_DETAILS 40211
+#define ID_FILTER_ENTITIES 40212
+#define ID_FILTER_MODELS 40213
+#define ID_FILTER_HINTSSKIPS 40214
+#define ID_FILTER_CLIPS 40215
+#define ID_FILTER_LIQUIDS 40216
+#define ID_FILTER_TRIGGERS 40217
+#define ID_FILTER_AREAPORTALS 40218
+#define ID_FILTER_TRANSLUCENT 40219
+#define ID_FILTER_CAULK 40220
+#define ID_FILTER_LIGHTS 40221
+#define ID_FILTER_PATHS 40223
+#define ID_FILTER_CLUSTERPORTALS 40224
+#define ID_FILTER_LIGHTGRID 40225
+#define ID_FILTER_STRUCTURAL 40226
+#define ID_FILTER_BOTCLIPS 40227
+
+#define ID_CURVE_REDISPERSE_INTERMEDIATE_COLS 40230
+#define ID_CURVE_REDISPERSE_INTERMEDIATE_ROWS 40231
+#define ID_EDIT_PASTEBRUSHTOCAMERA 40232
+
+#define ID_COLORS_MINOR_ALT 40230
+#define ID_COLORS_MAJOR_ALT 40231
+
+// those must have their own ID chunk ID_GRID_025 <= ID_GRID <= ID_GRID_256
+#define ID_GRID_025 40300
+#define ID_GRID_05 40301
+#define ID_GRID_1 40302
+#define ID_GRID_2 40303
+#define ID_GRID_4 40304
+#define ID_GRID_8 40305
+#define ID_GRID_16 40306
+#define ID_GRID_32 40307
+#define ID_GRID_64 40308
+#define ID_GRID_128 40309
+#define ID_GRID_256 40310
+
+#define ID_FILE_CHECKUPDATE 40320
+
+#define ID_TEXTUREWINDOW_SCALEUP 40321
+#define ID_TEXTUREWINDOW_SCALEDOWN 40322
+
+class CSynapseClientRadiant : public CSynapseClient
+{
+public:
+ bool RequestAPI(APIDescriptor_t *pAPI);
+ const char* GetInfo();
+ const char* GetName();