master f1f0d42bc2dc cached
1328 files
28.8 MB
4.0M tokens
6281 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (15,970K chars total). Download the full file to get everything.
Repository: electronicarts/CnC_Remastered_Collection
Branch: master
Commit: f1f0d42bc2dc
Files: 1328
Total size: 28.8 MB

Directory structure:
gitextract_n7svjjo2/

├── .gitignore
├── CnCRemastered.sln
├── CnCTDRAMapEditor/
│   ├── App.config
│   ├── CnCTDRAMapEditor.csproj
│   ├── Controls/
│   │   ├── BasicSettings.Designer.cs
│   │   ├── BasicSettings.cs
│   │   ├── BasicSettings.resx
│   │   ├── BriefingSettings.Designer.cs
│   │   ├── BriefingSettings.cs
│   │   ├── BriefingSettings.resx
│   │   ├── ImageTooltip.Designer.cs
│   │   ├── ImageTooltip.cs
│   │   ├── MapPanel.Designer.cs
│   │   ├── MapPanel.cs
│   │   ├── MapPanel.resx
│   │   ├── MenuButton.Designer.cs
│   │   ├── MenuButton.cs
│   │   ├── ObjectProperties.Designer.cs
│   │   ├── ObjectProperties.cs
│   │   ├── ObjectProperties.resx
│   │   ├── PlayerSettings.Designer.cs
│   │   ├── PlayerSettings.cs
│   │   ├── PlayerSettings.resx
│   │   ├── PropertiesComboBox.Designer.cs
│   │   ├── PropertiesComboBox.cs
│   │   ├── TerrainProperties.Designer.cs
│   │   ├── TerrainProperties.cs
│   │   ├── TerrainProperties.resx
│   │   ├── TypeComboBox.Designer.cs
│   │   └── TypeComboBox.cs
│   ├── Dialogs/
│   │   ├── ErrorMessageBox.Designer.cs
│   │   ├── ErrorMessageBox.cs
│   │   ├── ErrorMessageBox.resx
│   │   ├── InviteMessageBox.Designer.cs
│   │   ├── InviteMessageBox.cs
│   │   ├── InviteMessageBox.resx
│   │   ├── MapSettingsDialog.Designer.cs
│   │   ├── MapSettingsDialog.cs
│   │   ├── MapSettingsDialog.resx
│   │   ├── NewMapDialog.Designer.cs
│   │   ├── NewMapDialog.cs
│   │   ├── NewMapDialog.resx
│   │   ├── SteamDialog.Designer.cs
│   │   ├── SteamDialog.cs
│   │   ├── SteamDialog.resx
│   │   ├── TeamTypesDialog.Designer.cs
│   │   ├── TeamTypesDialog.cs
│   │   ├── TeamTypesDialog.resx
│   │   ├── TriggersDialog.Designer.cs
│   │   ├── TriggersDialog.cs
│   │   └── TriggersDialog.resx
│   ├── Event/
│   │   ├── RenderEventArgs.cs
│   │   └── UndoRedoEventArgs.cs
│   ├── Globals.cs
│   ├── Interface/
│   │   ├── IBrowsableType.cs
│   │   ├── ICellOccupier.cs
│   │   ├── ICellOverlapper.cs
│   │   ├── IGamePlugin.cs
│   │   ├── INamedType.cs
│   │   ├── ITechnoType.cs
│   │   ├── ITool.cs
│   │   └── IWidget.cs
│   ├── License.txt
│   ├── MainForm.Designer.cs
│   ├── MainForm.cs
│   ├── MainForm.resx
│   ├── Model/
│   │   ├── BasicSection.cs
│   │   ├── BriefingSection.cs
│   │   ├── Building.cs
│   │   ├── BuildingType.cs
│   │   ├── CellGrid.cs
│   │   ├── CellMetrics.cs
│   │   ├── CellTrigger.cs
│   │   ├── DirectionType.cs
│   │   ├── House.cs
│   │   ├── HouseType.cs
│   │   ├── Infantry.cs
│   │   ├── InfantryType.cs
│   │   ├── Map.cs
│   │   ├── MapSection.cs
│   │   ├── OccupierSet.cs
│   │   ├── OverlapperSet.cs
│   │   ├── Overlay.cs
│   │   ├── OverlayType.cs
│   │   ├── Smudge.cs
│   │   ├── SmudgeType.cs
│   │   ├── SteamSection.cs
│   │   ├── TeamType.cs
│   │   ├── Template.cs
│   │   ├── TemplateType.cs
│   │   ├── Terrain.cs
│   │   ├── TerrainType.cs
│   │   ├── TheaterType.cs
│   │   ├── Trigger.cs
│   │   ├── TypeItem.cs
│   │   ├── Unit.cs
│   │   ├── UnitType.cs
│   │   └── Waypoint.cs
│   ├── Program.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   ├── Settings.Designer.cs
│   │   └── Settings.settings
│   ├── RedAlert/
│   │   ├── ActionDataTypes.cs
│   │   ├── ActionTypes.cs
│   │   ├── BasicSection.cs
│   │   ├── BuildingTypes.cs
│   │   ├── Constants.cs
│   │   ├── DirectionTypes.cs
│   │   ├── EventTypes.cs
│   │   ├── GamePlugin.cs
│   │   ├── House.cs
│   │   ├── HouseTypes.cs
│   │   ├── InfantryTypes.cs
│   │   ├── MissionTypes.cs
│   │   ├── OverlayTypes.cs
│   │   ├── SmudgeTypes.cs
│   │   ├── TeamMissionTypes.cs
│   │   ├── TemplateTypes.cs
│   │   ├── TerrainTypes.cs
│   │   ├── TheaterTypes.cs
│   │   └── UnitTypes.cs
│   ├── Render/
│   │   └── MapRenderer.cs
│   ├── Steamworks.NET/
│   │   ├── CallbackDispatcher.cs
│   │   ├── CallbackIdentity.cs
│   │   ├── ISteamMatchmakingResponses.cs
│   │   ├── InteropHelp.cs
│   │   ├── Packsize.cs
│   │   ├── Steam.cs
│   │   ├── autogen/
│   │   │   ├── NativeMethods.cs
│   │   │   ├── SteamCallbacks.cs
│   │   │   ├── SteamConstants.cs
│   │   │   ├── SteamEnums.cs
│   │   │   ├── SteamStructs.cs
│   │   │   ├── isteamapplist.cs
│   │   │   ├── isteamapps.cs
│   │   │   ├── isteamclient.cs
│   │   │   ├── isteamcontroller.cs
│   │   │   ├── isteamfriends.cs
│   │   │   ├── isteamgameserver.cs
│   │   │   ├── isteamgameserverapps.cs
│   │   │   ├── isteamgameserverclient.cs
│   │   │   ├── isteamgameserverhttp.cs
│   │   │   ├── isteamgameserverinventory.cs
│   │   │   ├── isteamgameservernetworking.cs
│   │   │   ├── isteamgameserverstats.cs
│   │   │   ├── isteamgameserverugc.cs
│   │   │   ├── isteamgameserverutils.cs
│   │   │   ├── isteamhtmlsurface.cs
│   │   │   ├── isteamhttp.cs
│   │   │   ├── isteaminput.cs
│   │   │   ├── isteaminventory.cs
│   │   │   ├── isteammatchmaking.cs
│   │   │   ├── isteammusic.cs
│   │   │   ├── isteammusicremote.cs
│   │   │   ├── isteamnetworking.cs
│   │   │   ├── isteamparentalsettings.cs
│   │   │   ├── isteamremoteplay.cs
│   │   │   ├── isteamremotestorage.cs
│   │   │   ├── isteamscreenshots.cs
│   │   │   ├── isteamugc.cs
│   │   │   ├── isteamunifiedmessages.cs
│   │   │   ├── isteamuser.cs
│   │   │   ├── isteamuserstats.cs
│   │   │   ├── isteamutils.cs
│   │   │   └── isteamvideo.cs
│   │   └── types/
│   │       ├── MatchmakingTypes/
│   │       │   ├── gameserveritem_t.cs
│   │       │   └── servernetadr_t.cs
│   │       ├── SteamClient/
│   │       │   ├── SteamAPIWarningMessageHook_t.cs
│   │       │   ├── SteamAPI_CheckCallbackRegistered_t.cs
│   │       │   └── SteamAPI_PostAPIResultInProcess_t.cs
│   │       ├── SteamClientPublic/
│   │       │   ├── CGameID.cs
│   │       │   ├── CSteamID.cs
│   │       │   └── HAuthTicket.cs
│   │       ├── SteamController/
│   │       │   ├── ControllerActionSetHandle_t.cs
│   │       │   ├── ControllerAnalogActionHandle_t.cs
│   │       │   ├── ControllerDigitalActionHandle_t.cs
│   │       │   └── ControllerHandle_t.cs
│   │       ├── SteamFriends/
│   │       │   └── FriendsGroupID_t.cs
│   │       ├── SteamHTMLSurface/
│   │       │   └── HHTMLBrowser.cs
│   │       ├── SteamHTTP/
│   │       │   ├── HTTPCookieContainerHandle.cs
│   │       │   └── HTTPRequestHandle.cs
│   │       ├── SteamInput/
│   │       │   ├── InputActionSetHandle_t.cs
│   │       │   ├── InputAnalogActionHandle_t.cs
│   │       │   ├── InputDigitalActionHandle_t.cs
│   │       │   └── InputHandle_t.cs
│   │       ├── SteamInventory/
│   │       │   ├── SteamInventoryResult_t.cs
│   │       │   ├── SteamInventoryUpdateHandle_t.cs
│   │       │   ├── SteamItemDef_t.cs
│   │       │   └── SteamItemInstanceID_t.cs
│   │       ├── SteamMatchmaking/
│   │       │   ├── HServerListRequest.cs
│   │       │   └── HServerQuery.cs
│   │       ├── SteamNetworking/
│   │       │   ├── SNetListenSocket_t.cs
│   │       │   └── SNetSocket_t.cs
│   │       ├── SteamRemoteStorage/
│   │       │   ├── PublishedFileId_t.cs
│   │       │   ├── PublishedFileUpdateHandle_t.cs
│   │       │   ├── UGCFileWriteStreamHandle_t.cs
│   │       │   └── UGCHandle_t.cs
│   │       ├── SteamScreenshots/
│   │       │   └── ScreenshotHandle.cs
│   │       ├── SteamTypes/
│   │       │   ├── AccountID_t.cs
│   │       │   ├── AppId_t.cs
│   │       │   ├── DepotId_t.cs
│   │       │   ├── ManifestId_t.cs
│   │       │   ├── PartyBeaconID_t.cs
│   │       │   ├── RTime32.cs
│   │       │   ├── SiteId_t.cs
│   │       │   └── SteamAPICall_t.cs
│   │       ├── SteamUGC/
│   │       │   ├── UGCQueryHandle_t.cs
│   │       │   └── UGCUpdateHandle_t.cs
│   │       ├── SteamUnifiedMessages/
│   │       │   └── ClientUnifiedMessageHandle.cs
│   │       ├── SteamUserStats/
│   │       │   ├── SteamLeaderboardEntries_t.cs
│   │       │   └── SteamLeaderboard_t.cs
│   │       └── Steam_api_common/
│   │           ├── HSteamPipe.cs
│   │           └── HSteamUser.cs
│   ├── TiberianDawn/
│   │   ├── ActionTypes.cs
│   │   ├── BasicSection.cs
│   │   ├── BuildingTypes.cs
│   │   ├── Constants.cs
│   │   ├── DirectionTypes.cs
│   │   ├── EventTypes.cs
│   │   ├── GamePlugin.cs
│   │   ├── House.cs
│   │   ├── HouseTypes.cs
│   │   ├── InfantryTypes.cs
│   │   ├── MissionTypes.cs
│   │   ├── OverlayTypes.cs
│   │   ├── SmudgeTypes.cs
│   │   ├── TeamMissionTypes.cs
│   │   ├── TemplateTypes.cs
│   │   ├── TerrainTypes.cs
│   │   ├── TheaterTypes.cs
│   │   └── UnitTypes.cs
│   ├── Tools/
│   │   ├── BuildingTool.cs
│   │   ├── CellTriggersTool.cs
│   │   ├── Dialogs/
│   │   │   ├── CellTriggersToolDialog.Designer.cs
│   │   │   ├── CellTriggersToolDialog.cs
│   │   │   ├── CellTriggersToolDialog.resx
│   │   │   ├── GenericToolDialog.Designer.cs
│   │   │   ├── GenericToolDialog.cs
│   │   │   ├── GenericToolDialog.resx
│   │   │   ├── ObjectToolDialog.Designer.cs
│   │   │   ├── ObjectToolDialog.cs
│   │   │   ├── ObjectToolDialog.resx
│   │   │   ├── ResourcesToolDialog.Designer.cs
│   │   │   ├── ResourcesToolDialog.cs
│   │   │   ├── ResourcesToolDialog.resx
│   │   │   ├── TemplateToolDialog.Designer.cs
│   │   │   ├── TemplateToolDialog.cs
│   │   │   ├── TemplateToolDialog.resx
│   │   │   ├── TerrainToolDialog.Designer.cs
│   │   │   ├── TerrainToolDialog.cs
│   │   │   ├── TerrainToolDialog.resx
│   │   │   ├── WaypointsToolDialog.Designer.cs
│   │   │   ├── WaypointsToolDialog.cs
│   │   │   └── WaypointsToolDialog.resx
│   │   ├── InfantryTool.cs
│   │   ├── OverlaysTool.cs
│   │   ├── ResourcesTool.cs
│   │   ├── SmudgeTool.cs
│   │   ├── TemplateTool.cs
│   │   ├── TerrainTool.cs
│   │   ├── UnitTool.cs
│   │   ├── ViewTool.cs
│   │   ├── WallsTool.cs
│   │   └── WaypointsTool.cs
│   ├── Utility/
│   │   ├── CRC.cs
│   │   ├── ExtensionMethods.cs
│   │   ├── GameTextManager.cs
│   │   ├── INI.cs
│   │   ├── MRU.cs
│   │   ├── Megafile.cs
│   │   ├── MegafileBuilder.cs
│   │   ├── MegafileManager.cs
│   │   ├── PropertyTracker.cs
│   │   ├── SteamworksUGC.cs
│   │   ├── TGASharpLib.cs
│   │   ├── TeamColor.cs
│   │   ├── TeamColorManager.cs
│   │   ├── TextureManager.cs
│   │   ├── Tileset.cs
│   │   ├── TilesetManager.cs
│   │   ├── UndoRedoList.cs
│   │   └── WWCompression.cs
│   └── Widgets/
│       └── NavigationWidget.cs
├── CnCTDRAMapEditor.sln
├── LICENSE.md
├── README.md
├── REDALERT/
│   ├── 2KEYFRAM.CPP
│   ├── 2SUPPORT.ASM
│   ├── 2TXTPRNT.ASM
│   ├── AADATA.CPP
│   ├── ABSTRACT.CPP
│   ├── ABSTRACT.H
│   ├── ADATA.CPP
│   ├── ADPCM.CPP
│   ├── AIRCRAFT.CPP
│   ├── AIRCRAFT.H
│   ├── ANIM.CPP
│   ├── ANIM.H
│   ├── AUDIO.CPP
│   ├── AUDIO.H
│   ├── B64PIPE.CPP
│   ├── B64PIPE.H
│   ├── B64STRAW.CPP
│   ├── B64STRAW.H
│   ├── BAR.CPP
│   ├── BAR.H
│   ├── BASE.CPP
│   ├── BASE.H
│   ├── BASE64.CPP
│   ├── BASE64.H
│   ├── BBDATA.CPP
│   ├── BDATA.CPP
│   ├── BENCH.CPP
│   ├── BENCH.H
│   ├── BFIOFILE.CPP
│   ├── BFIOFILE.H
│   ├── BIGCHECK.CPP
│   ├── BIGCHECK.H
│   ├── BLOWFISH.CPP
│   ├── BLOWFISH.H
│   ├── BLOWPIPE.CPP
│   ├── BLOWPIPE.H
│   ├── BLWSTRAW.CPP
│   ├── BLWSTRAW.H
│   ├── BMP8.CPP
│   ├── BMP8.H
│   ├── BUFF.CPP
│   ├── BUFF.H
│   ├── BUFFERX.H
│   ├── BUILDING.CPP
│   ├── BUILDING.H
│   ├── BULLET.CPP
│   ├── BULLET.H
│   ├── CARGO.CPP
│   ├── CARGO.H
│   ├── CARRY.CPP
│   ├── CARRY.H
│   ├── CBN_.H
│   ├── CCDDE.CPP
│   ├── CCDDE.H
│   ├── CCFILE.CPP
│   ├── CCFILE.H
│   ├── CCINI.CPP
│   ├── CCINI.H
│   ├── CCMPATH.CPP
│   ├── CCPTR.CPP
│   ├── CCPTR.H
│   ├── CCTEN.CPP
│   ├── CDATA.CPP
│   ├── CDFILE.CPP
│   ├── CDFILE.H
│   ├── CELL.CPP
│   ├── CELL.H
│   ├── CHECKBOX.CPP
│   ├── CHECKBOX.H
│   ├── CHEKLIST.CPP
│   ├── CHEKLIST.H
│   ├── CLASS.CPP
│   ├── COLRLIST.CPP
│   ├── COLRLIST.H
│   ├── COMBAT.CPP
│   ├── COMBUF.CPP
│   ├── COMBUF.H
│   ├── COMINIT.CPP
│   ├── COMINIT.H
│   ├── COMPAT.H
│   ├── COMQUEUE.CPP
│   ├── COMQUEUE.H
│   ├── CONFDLG.CPP
│   ├── CONFDLG.H
│   ├── CONNECT.CPP
│   ├── CONNECT.H
│   ├── CONNMGR.H
│   ├── CONQUER.CPP
│   ├── CONQUER.H
│   ├── CONST.CPP
│   ├── CONTROL.CPP
│   ├── CONTROL.H
│   ├── COORD.CPP
│   ├── COORDA.ASM
│   ├── COORDA.h
│   ├── CPUID.ASM
│   ├── CRATE.CPP
│   ├── CRATE.H
│   ├── CRC.CPP
│   ├── CRC.H
│   ├── CRCPIPE.CPP
│   ├── CRCPIPE.H
│   ├── CRCSTRAW.CPP
│   ├── CRCSTRAW.H
│   ├── CREDITS.CPP
│   ├── CREDITS.H
│   ├── CREW.CPP
│   ├── CREW.H
│   ├── CSTRAW.CPP
│   ├── CSTRAW.H
│   ├── DDE.CPP
│   ├── DDE.H
│   ├── DEBUG.CPP
│   ├── DEBUG.H
│   ├── DEFINES.H
│   ├── DESCDLG.CPP
│   ├── DESCDLG.H
│   ├── DIAL8.CPP
│   ├── DIAL8.H
│   ├── DIALOG.CPP
│   ├── DIBAPI.H
│   ├── DIBFILE.CPP
│   ├── DIBUTIL.CPP
│   ├── DIBUTIL.H
│   ├── DISPLAY.CPP
│   ├── DISPLAY.H
│   ├── DLLInterface.cpp
│   ├── DLLInterface.h
│   ├── DLLInterfaceEditor.cpp
│   ├── DLLInterfaceVersion.h
│   ├── DOOR.CPP
│   ├── DOOR.H
│   ├── DPMI.CPP
│   ├── DPMI.H
│   ├── DRIVE.CPP
│   ├── DRIVE.H
│   ├── DROP.CPP
│   ├── DROP.H
│   ├── DTABLE.CPP
│   ├── DYNAVEC.CPP
│   ├── EDIT.CPP
│   ├── EDIT.H
│   ├── EGOS.CPP
│   ├── EGOS.H
│   ├── ENDING.CPP
│   ├── ENDING.H
│   ├── EVENT.CPP
│   ├── EVENT.H
│   ├── EXPAND.CPP
│   ├── EXTERNS.H
│   ├── FACE.CPP
│   ├── FACE.H
│   ├── FACING.CPP
│   ├── FACING.H
│   ├── FACTORY.CPP
│   ├── FACTORY.H
│   ├── FAKESOCK.H
│   ├── FIELD.CPP
│   ├── FIELD.H
│   ├── FILEPCX.H
│   ├── FINDPATH.CPP
│   ├── FIXED.CPP
│   ├── FIXED.H
│   ├── FLASHER.CPP
│   ├── FLASHER.H
│   ├── FLY.CPP
│   ├── FLY.H
│   ├── FOOT.CPP
│   ├── FOOT.H
│   ├── FTIMER.H
│   ├── FUNCTION.H
│   ├── FUSE.CPP
│   ├── FUSE.H
│   ├── GADGET.CPP
│   ├── GADGET.H
│   ├── GAMEDLG.CPP
│   ├── GAMEDLG.H
│   ├── GAUGE.CPP
│   ├── GAUGE.H
│   ├── GETCPU.CPP
│   ├── GLOBALS.CPP
│   ├── GOPTIONS.CPP
│   ├── GOPTIONS.H
│   ├── GSCREEN.CPP
│   ├── GSCREEN.H
│   ├── HDATA.CPP
│   ├── HEAP.CPP
│   ├── HEAP.H
│   ├── HELP.CPP
│   ├── HELP.H
│   ├── HOUSE.CPP
│   ├── HOUSE.H
│   ├── HSV.CPP
│   ├── HSV.H
│   ├── ICONLIST.CPP
│   ├── ICONLIST.H
│   ├── IDATA.CPP
│   ├── INFANTRY.CPP
│   ├── INFANTRY.H
│   ├── INI.CPP
│   ├── INI.H
│   ├── INIBIN.CPP
│   ├── INICODE.CPP
│   ├── INIT.CPP
│   ├── INLINE.H
│   ├── INT.CPP
│   ├── INT.H
│   ├── INTERNET.CPP
│   ├── INTERNET.H
│   ├── INTERPAL.CPP
│   ├── INTRO.CPP
│   ├── INTRO.H
│   ├── IOMAP.CPP
│   ├── IOOBJ.CPP
│   ├── IPX.CPP
│   ├── IPX.H
│   ├── IPX95.CPP
│   ├── IPX95.H
│   ├── IPXADDR.CPP
│   ├── IPXADDR.H
│   ├── IPXCONN.CPP
│   ├── IPXCONN.H
│   ├── IPXGCONN.CPP
│   ├── IPXGCONN.H
│   ├── IPXMGR.CPP
│   ├── IPXMGR.H
│   ├── IPXPROT.ASM
│   ├── IPXREAL.ASM
│   ├── ITABLE.CPP
│   ├── JSHELL.CPP
│   ├── JSHELL.H
│   ├── KEY.CPP
│   ├── KEY.H
│   ├── KEYBOARD.CPP
│   ├── KEYBOARD.H
│   ├── KEYFBUFF.ASM
│   ├── LANGUAGE.H
│   ├── LAYER.CPP
│   ├── LAYER.H
│   ├── LCW.CPP
│   ├── LCW.H
│   ├── LCWCOMP.ASM
│   ├── LCWPIPE.CPP
│   ├── LCWPIPE.H
│   ├── LCWSTRAW.CPP
│   ├── LCWSTRAW.H
│   ├── LCWUNCMP.CPP
│   ├── LED.H
│   ├── LINK.CPP
│   ├── LINK.H
│   ├── LINT.H
│   ├── LIST.CPP
│   ├── LIST.H
│   ├── LISTNODE.H
│   ├── LOADDLG.CPP
│   ├── LOADDLG.H
│   ├── LOGIC.CPP
│   ├── LOGIC.H
│   ├── LZO.H
│   ├── LZO1X.H
│   ├── LZO1X_C.CPP
│   ├── LZO1X_D.CPP
│   ├── LZOCONF.H
│   ├── LZOPIPE.CPP
│   ├── LZOPIPE.H
│   ├── LZOSTRAW.CPP
│   ├── LZOSTRAW.H
│   ├── LZO_CONF.H
│   ├── LZW.CPP
│   ├── LZW.H
│   ├── LZWOTRAW.CPP
│   ├── LZWPIPE.CPP
│   ├── LZWPIPE.H
│   ├── LZWSTRAW.CPP
│   ├── LZWSTRAW.H
│   ├── License.txt
│   ├── MAP.CPP
│   ├── MAP.H
│   ├── MAPEDDLG.CPP
│   ├── MAPEDIT.CPP
│   ├── MAPEDIT.H
│   ├── MAPEDPLC.CPP
│   ├── MAPEDSEL.CPP
│   ├── MAPEDTM.CPP
│   ├── MAPSEL.CPP
│   ├── MCI.CPP
│   ├── MCI.H
│   ├── MCIMOVIE.CPP
│   ├── MCIMOVIE.H
│   ├── MEMCHECK.H
│   ├── MENUS.CPP
│   ├── MESSAGE.H
│   ├── MISSION.CPP
│   ├── MISSION.H
│   ├── MIXFILE.CPP
│   ├── MIXFILE.H
│   ├── MMX.ASM
│   ├── MONOC.CPP
│   ├── MONOC.H
│   ├── MOUSE.CPP
│   ├── MOUSE.H
│   ├── MOVIE.H
│   ├── MP.CPP
│   ├── MP.H
│   ├── MPGSET.CPP
│   ├── MPGSET.H
│   ├── MPLAYER.CPP
│   ├── MPLIB.CPP
│   ├── MPMGRD.CPP
│   ├── MPMGRD.H
│   ├── MPMGRW.CPP
│   ├── MPMGRW.H
│   ├── MPU.CPP
│   ├── MPU.H
│   ├── MSGBOX.CPP
│   ├── MSGBOX.H
│   ├── MSGLIST.CPP
│   ├── MSGLIST.H
│   ├── MiscAsm.cpp
│   ├── NETDLG.CPP
│   ├── NOSEQCON.CPP
│   ├── NOSEQCON.H
│   ├── NULLCONN.CPP
│   ├── NULLCONN.H
│   ├── NULLDLG.CPP
│   ├── NULLMGR.CPP
│   ├── NULLMGR.H
│   ├── OBJECT.CPP
│   ├── OBJECT.H
│   ├── OCIDL.H
│   ├── ODATA.CPP
│   ├── OPTIONS.CPP
│   ├── OPTIONS.H
│   ├── OVERLAY.CPP
│   ├── OVERLAY.H
│   ├── PACKET.CPP
│   ├── PACKET.H
│   ├── PALETTEC.CPP
│   ├── PALETTEC.H
│   ├── PIPE.CPP
│   ├── PIPE.H
│   ├── PK.CPP
│   ├── PK.H
│   ├── PKPIPE.CPP
│   ├── PKPIPE.H
│   ├── PKSTRAW.CPP
│   ├── PKSTRAW.H
│   ├── POWER.CPP
│   ├── POWER.H
│   ├── PROFILE.CPP
│   ├── QUEUE.CPP
│   ├── QUEUE.H
│   ├── RADAR.CPP
│   ├── RADAR.H
│   ├── RADIO.CPP
│   ├── RADIO.H
│   ├── RAMFILE.CPP
│   ├── RAMFILE.H
│   ├── RAND.CPP
│   ├── RANDOM.CPP
│   ├── RANDOM.H
│   ├── RAWFILE.CPP
│   ├── RAWFILE.H
│   ├── RAWOLAPI.CPP
│   ├── RAWOLAPI.H
│   ├── READLINE.CPP
│   ├── READLINE.H
│   ├── RECT.CPP
│   ├── RECT.H
│   ├── REGION.H
│   ├── REINF.CPP
│   ├── RESOURCE/
│   │   ├── RedAlert.rc
│   │   └── resource.h
│   ├── RGB.CPP
│   ├── RGB.H
│   ├── RNDSTRAW.CPP
│   ├── RNDSTRAW.H
│   ├── RNG.H
│   ├── ROTBMP.CPP
│   ├── ROTBMP.H
│   ├── RULES.CPP
│   ├── RULES.H
│   ├── RedAlert.vcxproj
│   ├── RedAlert.vcxproj.filters
│   ├── SAVEDLG.H
│   ├── SAVELOAD.CPP
│   ├── SCENARIO.CPP
│   ├── SCENARIO.H
│   ├── SCORE.CPP
│   ├── SCORE.H
│   ├── SCREEN.H
│   ├── SCROLL.CPP
│   ├── SCROLL.H
│   ├── SDATA.CPP
│   ├── SEARCH.H
│   ├── SEDITDLG.CPP
│   ├── SEDITDLG.H
│   ├── SENDFILE.CPP
│   ├── SEQCONN.CPP
│   ├── SEQCONN.H
│   ├── SESSION.CPP
│   ├── SESSION.H
│   ├── SHA.CPP
│   ├── SHA.H
│   ├── SHAPEBTN.CPP
│   ├── SHAPEBTN.H
│   ├── SHAPIPE.CPP
│   ├── SHAPIPE.H
│   ├── SHASTRAW.CPP
│   ├── SHASTRAW.H
│   ├── SIDEBAR.CPP
│   ├── SIDEBAR.H
│   ├── SIDEBARGlyphx.CPP
│   ├── SIDEBARGlyphx.H
│   ├── SLIDER.CPP
│   ├── SLIDER.H
│   ├── SMUDGE.CPP
│   ├── SMUDGE.H
│   ├── SOUNDDLG.CPP
│   ├── SOUNDDLG.H
│   ├── SPECIAL.CPP
│   ├── SPECIAL.H
│   ├── SPRITE.CPP
│   ├── STAGE.H
│   ├── STARTUP.CPP
│   ├── STATBTN.CPP
│   ├── STATBTN.H
│   ├── STATS.CPP
│   ├── STRAW.CPP
│   ├── STRAW.H
│   ├── STUB.CPP
│   ├── STYLE.H
│   ├── SUPER.CPP
│   ├── SUPER.H
│   ├── SUPPORT.ASM
│   ├── SURFACE.CPP
│   ├── SURFACE.H
│   ├── Shape.cpp
│   ├── TAB.CPP
│   ├── TAB.H
│   ├── TACTION.CPP
│   ├── TACTION.H
│   ├── TARGET.CPP
│   ├── TARGET.H
│   ├── TCPIP.CPP
│   ├── TCPIP.H
│   ├── TDATA.CPP
│   ├── TEAM.CPP
│   ├── TEAM.H
│   ├── TEAMTYPE.CPP
│   ├── TEAMTYPE.H
│   ├── TECHNO.CPP
│   ├── TECHNO.H
│   ├── TEMPLATE.CPP
│   ├── TEMPLATE.H
│   ├── TENMGR.CPP
│   ├── TENMGR.H
│   ├── TERRAIN.CPP
│   ├── TERRAIN.H
│   ├── TEVENT.CPP
│   ├── TEVENT.H
│   ├── TEXTBTN.CPP
│   ├── TEXTBTN.H
│   ├── THEME.CPP
│   ├── THEME.H
│   ├── TOGGLE.CPP
│   ├── TOGGLE.H
│   ├── TOOLTIP.CPP
│   ├── TOOLTIP.H
│   ├── TRACKER.CPP
│   ├── TRIGGER.CPP
│   ├── TRIGGER.H
│   ├── TRIGTYPE.CPP
│   ├── TRIGTYPE.H
│   ├── TURRET.CPP
│   ├── TURRET.H
│   ├── TXTLABEL.CPP
│   ├── TXTLABEL.H
│   ├── TXTPRNT.ASM
│   ├── TYPE.H
│   ├── UDATA.CPP
│   ├── UDPADDR.CPP
│   ├── UNIT.CPP
│   ├── UNIT.H
│   ├── UTRACKER.CPP
│   ├── UTRACKER.H
│   ├── VDATA.CPP
│   ├── VECTOR.CPP
│   ├── VECTOR.H
│   ├── VERSION.CPP
│   ├── VERSION.H
│   ├── VESSEL.CPP
│   ├── VESSEL.H
│   ├── VISUDLG.CPP
│   ├── VISUDLG.H
│   ├── VORTEX.CPP
│   ├── VORTEX.H
│   ├── W95TRACE.CPP
│   ├── W95TRACE.H
│   ├── WARHEAD.CPP
│   ├── WARHEAD.H
│   ├── WATCOM.H
│   ├── WEAPON.CPP
│   ├── WEAPON.H
│   ├── WIN32LIB/
│   │   ├── ALLOC.CPP
│   │   ├── AUDIO.H
│   │   ├── BUFFER.CPP
│   │   ├── BUFFER.H
│   │   ├── BUFFGLBL.CPP
│   │   ├── DDRAW.CPP
│   │   ├── DDRAW.H
│   │   ├── DEFINES.H
│   │   ├── DELAY.CPP
│   │   ├── DESCMGMT.H
│   │   ├── DIFFTB.INC
│   │   ├── DIPTHONG.CPP
│   │   ├── DIPTHONG.H
│   │   ├── DPLAY.H
│   │   ├── DRAWBUFF.H
│   │   ├── DRAWBUFF.INC
│   │   ├── DRAWRECT.CPP
│   │   ├── DSETUP.H
│   │   ├── DSOUND.H
│   │   ├── DrawMisc.cpp
│   │   ├── EXTERNS.H
│   │   ├── FASTFILE.H
│   │   ├── FILE.H
│   │   ├── FILEPCX.H
│   │   ├── FILETEMP.H
│   │   ├── FONT.CPP
│   │   ├── FONT.H
│   │   ├── FUNCTION.H
│   │   ├── GBUFFER.CPP
│   │   ├── GBUFFER.H
│   │   ├── GBUFFER.INC
│   │   ├── GETSHAPE.CPP
│   │   ├── ICONCACH.H
│   │   ├── ICONSET.CPP
│   │   ├── IFF.CPP
│   │   ├── IFF.H
│   │   ├── INDEXTB.INC
│   │   ├── IRANDOM.CPP
│   │   ├── KEYBOARD.H
│   │   ├── KEYBOARD.INC
│   │   ├── KEYSTRUC.INC
│   │   ├── LCWCOMP.ASM
│   │   ├── LCWUNCMP.ASM
│   │   ├── LOAD.CPP
│   │   ├── LOADFONT.CPP
│   │   ├── MCGAPRIM.INC
│   │   ├── MEMFLAG.H
│   │   ├── MISC.H
│   │   ├── MODEMREG.H
│   │   ├── MONO.H
│   │   ├── MOUSE.H
│   │   ├── MOUSE.INC
│   │   ├── MOUSEWW.CPP
│   │   ├── NYBBTB.INC
│   │   ├── PALETTE.CPP
│   │   ├── PALETTE.H
│   │   ├── PLAYCD.H
│   │   ├── PROFILE.H
│   │   ├── PROFILE.INC
│   │   ├── RAWFILE.H
│   │   ├── SET_FONT.CPP
│   │   ├── SHAPE.H
│   │   ├── SHAPE.INC
│   │   ├── SOS.H
│   │   ├── SOSCOMP.H
│   │   ├── SOSDATA.H
│   │   ├── SOSDEFS.H
│   │   ├── SOSFNCT.H
│   │   ├── SOSRES.H
│   │   ├── SOUND.H
│   │   ├── SOUNDINT.H
│   │   ├── STAMP.INC
│   │   ├── STRUCTS.H
│   │   ├── SVGAPRIM.INC
│   │   ├── TILE.H
│   │   ├── TIMER.CPP
│   │   ├── TIMER.H
│   │   ├── TIMERDWN.CPP
│   │   ├── TIMERINI.CPP
│   │   ├── TOBUFF.ASM
│   │   ├── VIDEO.H
│   │   ├── WINCOMM.H
│   │   ├── WINDOWS.CPP
│   │   ├── WINHIDE.CPP
│   │   ├── WRITEPCX.CPP
│   │   ├── WSA.H
│   │   ├── WWFILE.H
│   │   ├── WWLIB32.H
│   │   ├── WWMEM.H
│   │   ├── WWMEM.INC
│   │   ├── WW_WIN.H
│   │   ├── _DIPTABL.CPP
│   │   └── wwstd.h
│   ├── WINSTUB.CPP
│   ├── WOLAPIOB.CPP
│   ├── WOLAPIOB.H
│   ├── WOLDEBUG.H
│   ├── WOLEDIT.CPP
│   ├── WOLEDIT.H
│   ├── WOLSTRNG.CPP
│   ├── WOLSTRNG.H
│   ├── WOL_CGAM.CPP
│   ├── WOL_CHAT.CPP
│   ├── WOL_DNLD.CPP
│   ├── WOL_GSUP.CPP
│   ├── WOL_GSUP.H
│   ├── WOL_LOGN.CPP
│   ├── WOL_MAIN.CPP
│   ├── WOL_OPT.CPP
│   ├── WSNWLINK.H
│   ├── WSPIPX.CPP
│   ├── WSPIPX.H
│   ├── WSPROTO.CPP
│   ├── WSPROTO.H
│   ├── WSPUDP.CPP
│   ├── WSPUDP.H
│   ├── WWALLOC.H
│   ├── WWFILE.H
│   ├── XPIPE.CPP
│   ├── XPIPE.H
│   ├── XSTRAW.CPP
│   ├── XSTRAW.H
│   ├── _WSPROTO.CPP
│   └── _WSPROTO.H
├── SCRIPTS/
│   └── tgautil.py
└── TIBERIANDAWN/
    ├── AADATA.CPP
    ├── ABSTRACT.CPP
    ├── ABSTRACT.H
    ├── ADATA.CPP
    ├── AIRCRAFT.CPP
    ├── AIRCRAFT.H
    ├── ALLOC.CPP
    ├── ANIM.CPP
    ├── ANIM.H
    ├── AUDIO.CPP
    ├── AUDIO.H
    ├── BASE.CPP
    ├── BASE.H
    ├── BBDATA.CPP
    ├── BDATA.CPP
    ├── BUILDING.CPP
    ├── BUILDING.H
    ├── BULLET.CPP
    ├── BULLET.H
    ├── CARGO.CPP
    ├── CARGO.H
    ├── CCDDE.CPP
    ├── CCDDE.H
    ├── CCFILE.CPP
    ├── CCFILE.H
    ├── CC_ICON.RC
    ├── CDATA.CPP
    ├── CDFILE.CPP
    ├── CDFILE.H
    ├── CELL.CPP
    ├── CELL.H
    ├── CHECKBOX.CPP
    ├── CHECKBOX.H
    ├── CHEKLIST.CPP
    ├── CHEKLIST.H
    ├── COLRLIST.CPP
    ├── COLRLIST.H
    ├── COMBAT.CPP
    ├── COMBUF.CPP
    ├── COMBUF.H
    ├── COMPAT.H
    ├── COMQUEUE.CPP
    ├── COMQUEUE.H
    ├── CONFDLG.CPP
    ├── CONFDLG.H
    ├── CONNECT.CPP
    ├── CONNECT.H
    ├── CONNMGR.H
    ├── CONQUER.CPP
    ├── CONQUER.H
    ├── CONST.CPP
    ├── CONTROL.CPP
    ├── CONTROL.H
    ├── COORD.CPP
    ├── COORDA.ASM
    ├── COORDA.h
    ├── CREDITS.CPP
    ├── CREDITS.H
    ├── CREW.CPP
    ├── CREW.H
    ├── DDE.CPP
    ├── DDE.H
    ├── DEBUG.CPP
    ├── DEBUG.H
    ├── DEFINES.H
    ├── DESCDLG.CPP
    ├── DESCDLG.H
    ├── DIAL8.CPP
    ├── DIAL8.H
    ├── DIALOG.CPP
    ├── DISPLAY.CPP
    ├── DISPLAY.H
    ├── DLLInterface.cpp
    ├── DLLInterface.h
    ├── DLLInterfaceEditor.cpp
    ├── DLLInterfaceVersion.h
    ├── DOOR.CPP
    ├── DOOR.H
    ├── DPMI.CPP
    ├── DPMI.H
    ├── DRIVE.CPP
    ├── DRIVE.H
    ├── EDIT.CPP
    ├── EDIT.H
    ├── ENDING.CPP
    ├── ENDING.H
    ├── EVENT.CPP
    ├── EVENT.H
    ├── EXPAND.CPP
    ├── EXTERNS.H
    ├── FACING.CPP
    ├── FACING.H
    ├── FACTORY.CPP
    ├── FACTORY.H
    ├── FIELD.CPP
    ├── FIELD.H
    ├── FINDPATH.CPP
    ├── FLASHER.CPP
    ├── FLASHER.H
    ├── FLY.CPP
    ├── FLY.H
    ├── FOOT.CPP
    ├── FOOT.H
    ├── FTIMER.H
    ├── FUNCTION.H
    ├── FUSE.CPP
    ├── FUSE.H
    ├── GADGET.CPP
    ├── GADGET.H
    ├── GAMEDLG.CPP
    ├── GAMEDLG.H
    ├── GAUGE.CPP
    ├── GAUGE.H
    ├── GLOBALS.CPP
    ├── GOPTIONS.CPP
    ├── GOPTIONS.H
    ├── GSCREEN.CPP
    ├── GSCREEN.H
    ├── HDATA.CPP
    ├── HEAP.CPP
    ├── HEAP.H
    ├── HELP.CPP
    ├── HELP.H
    ├── HOUSE.CPP
    ├── HOUSE.H
    ├── IDATA.CPP
    ├── INFANTRY.CPP
    ├── INFANTRY.H
    ├── INI.CPP
    ├── INIT.CPP
    ├── INTERNET.CPP
    ├── INTERPAL.CPP
    ├── INTRO.CPP
    ├── INTRO.H
    ├── IOMAP.CPP
    ├── IOOBJ.CPP
    ├── IPX.CPP
    ├── IPX.H
    ├── IPX95.CPP
    ├── IPX95.H
    ├── IPXADDR.CPP
    ├── IPXADDR.H
    ├── IPXCONN.CPP
    ├── IPXCONN.H
    ├── IPXGCONN.CPP
    ├── IPXGCONN.H
    ├── IPXMGR.CPP
    ├── IPXMGR.H
    ├── IPXPROT.ASM
    ├── IPXREAL.ASM
    ├── JSHELL.CPP
    ├── JSHELL.H
    ├── KEYFBUFF.ASM
    ├── KEYFBUFF.INC
    ├── KEYFRAME.CPP
    ├── LAYER.CPP
    ├── LAYER.H
    ├── LED.H
    ├── LINK.CPP
    ├── LINK.H
    ├── LIST.CPP
    ├── LIST.H
    ├── LOADDLG.CPP
    ├── LOADDLG.H
    ├── LOGIC.CPP
    ├── LOGIC.H
    ├── License.txt
    ├── MAP.CPP
    ├── MAP.H
    ├── MAPEDDLG.CPP
    ├── MAPEDIT.CPP
    ├── MAPEDIT.H
    ├── MAPEDPLC.CPP
    ├── MAPEDSEL.CPP
    ├── MAPEDTM.CPP
    ├── MAPSEL.CPP
    ├── MENUS.CPP
    ├── MESSAGE.H
    ├── MISSION.CPP
    ├── MISSION.H
    ├── MIXFILE.CPP
    ├── MIXFILE.H
    ├── MMX.ASM
    ├── MONOC.CPP
    ├── MONOC.H
    ├── MOUSE.CPP
    ├── MOUSE.H
    ├── MPLAYER.CPP
    ├── MSGBOX.CPP
    ├── MSGBOX.H
    ├── MSGLIST.CPP
    ├── MSGLIST.H
    ├── MiscAsm.cpp
    ├── NETDLG.CPP
    ├── NOSEQCON.CPP
    ├── NOSEQCON.H
    ├── NULLCONN.CPP
    ├── NULLCONN.H
    ├── NULLDLG.CPP
    ├── NULLMGR.CPP
    ├── NULLMGR.H
    ├── OBJECT.CPP
    ├── OBJECT.H
    ├── ODATA.CPP
    ├── OPTIONS.CPP
    ├── OPTIONS.H
    ├── OVERLAY.CPP
    ├── OVERLAY.H
    ├── PACKET.CPP
    ├── PACKET.H
    ├── PAGFAULT.ASM
    ├── PHONE.H
    ├── POWER.CPP
    ├── POWER.H
    ├── PROFILE.CPP
    ├── QUEUE.CPP
    ├── QUEUE.H
    ├── RADAR.CPP
    ├── RADAR.H
    ├── RADIO.CPP
    ├── RADIO.H
    ├── RAND.CPP
    ├── RAWFILE.CPP
    ├── RAWFILE.H
    ├── REAL.H
    ├── REGION.H
    ├── REG_ICON.RC
    ├── REINF.CPP
    ├── RESOURCE/
    │   ├── TiberianDawn.rc
    │   └── resource.h
    ├── RULES.CPP
    ├── RULES.H
    ├── SAVEDLG.H
    ├── SAVELOAD.CPP
    ├── SCENARIO.CPP
    ├── SCORE.CPP
    ├── SCORE.H
    ├── SCREEN.H
    ├── SCROLL.CPP
    ├── SCROLL.H
    ├── SDATA.CPP
    ├── SEQCONN.CPP
    ├── SEQCONN.H
    ├── SESSION.H
    ├── SHAPEBTN.CPP
    ├── SHAPEBTN.H
    ├── SIDEBAR.CPP
    ├── SIDEBAR.H
    ├── SIDEBARGlyphx.CPP
    ├── SIDEBARGlyphx.H
    ├── SLIDER.CPP
    ├── SLIDER.H
    ├── SMUDGE.CPP
    ├── SMUDGE.H
    ├── SOUNDDLG.CPP
    ├── SOUNDDLG.H
    ├── SPECIAL.CPP
    ├── SPECIAL.H
    ├── STAGE.H
    ├── STARTUP.CPP
    ├── STATS.CPP
    ├── SUPER.CPP
    ├── SUPER.H
    ├── SUPPORT.ASM
    ├── Shape.cpp
    ├── TAB.CPP
    ├── TAB.H
    ├── TARCOM.CPP
    ├── TARCOM.H
    ├── TARGET.CPP
    ├── TARGET.H
    ├── TCPIP.CPP
    ├── TCPIP.H
    ├── TDATA.CPP
    ├── TEAM.CPP
    ├── TEAM.H
    ├── TEAMTYPE.CPP
    ├── TEAMTYPE.H
    ├── TECHNO.CPP
    ├── TECHNO.H
    ├── TEMPLATE.CPP
    ├── TEMPLATE.H
    ├── TERRAIN.CPP
    ├── TERRAIN.H
    ├── TEXTBLIT.H
    ├── TEXTBTN.CPP
    ├── TEXTBTN.H
    ├── THEME.CPP
    ├── THEME.H
    ├── TOGGLE.CPP
    ├── TOGGLE.H
    ├── TRIGGER.CPP
    ├── TRIGGER.H
    ├── TURRET.CPP
    ├── TURRET.H
    ├── TXTLABEL.CPP
    ├── TXTLABEL.H
    ├── TXTPRNT.ASM
    ├── TYPE.H
    ├── TiberianDawn.vcxproj
    ├── TiberianDawn.vcxproj.filters
    ├── UDATA.CPP
    ├── UNIT.CPP
    ├── UNIT.H
    ├── UTRACKER.CPP
    ├── UTRACKER.H
    ├── VECTOR.CPP
    ├── VECTOR.H
    ├── VISUDLG.CPP
    ├── VISUDLG.H
    ├── WATCOM.H
    ├── WIN32LIB/
    │   ├── ALLOC.CPP
    │   ├── AUDIO.H
    │   ├── BUFFER.CPP
    │   ├── BUFFER.H
    │   ├── BUFFGLBL.CPP
    │   ├── DDRAW.CPP
    │   ├── DDRAW.H
    │   ├── DEFINES.H
    │   ├── DESCMGMT.H
    │   ├── DIFFTB.INC
    │   ├── DIPTHONG.CPP
    │   ├── DIPTHONG.H
    │   ├── DPLAY.H
    │   ├── DRAWBUFF.H
    │   ├── DRAWBUFF.INC
    │   ├── DRAWRECT.CPP
    │   ├── DSETUP.H
    │   ├── DSOUND.H
    │   ├── DrawMisc.cpp
    │   ├── EXTERNS.H
    │   ├── FACINGFF.ASM
    │   ├── FACINGFF.h
    │   ├── FASTFILE.H
    │   ├── FILE.H
    │   ├── FILEPCX.H
    │   ├── FILETEMP.H
    │   ├── FONT.CPP
    │   ├── FONT.H
    │   ├── FUNCTION.H
    │   ├── GBUFFER.CPP
    │   ├── GBUFFER.H
    │   ├── GBUFFER.INC
    │   ├── GETSHAPE.CPP
    │   ├── ICONCACH.H
    │   ├── ICONSET.CPP
    │   ├── IFF.CPP
    │   ├── IFF.H
    │   ├── INDEXTB.INC
    │   ├── IRANDOM.CPP
    │   ├── KEYBOARD.CPP
    │   ├── KEYBOARD.H
    │   ├── KEYBOARD.INC
    │   ├── KEYSTRUC.INC
    │   ├── LOAD.CPP
    │   ├── LOADFONT.CPP
    │   ├── LOADPAL.CPP
    │   ├── MCGAPRIM.INC
    │   ├── MEM.CPP
    │   ├── MEMFLAG.H
    │   ├── MISC.H
    │   ├── MODEMREG.H
    │   ├── MONO.H
    │   ├── MORPHPAL.CPP
    │   ├── MOUSE.H
    │   ├── MOUSE.INC
    │   ├── MOUSEWW.CPP
    │   ├── NEWDEL.CPP
    │   ├── NYBBTB.INC
    │   ├── PALETTE.CPP
    │   ├── PALETTE.H
    │   ├── PLAYCD.H
    │   ├── PROFILE.H
    │   ├── PROFILE.INC
    │   ├── RAWFILE.H
    │   ├── REGIONSZ.CPP
    │   ├── REMAP.ASM
    │   ├── SET_FONT.CPP
    │   ├── SHAPE.H
    │   ├── SHAPE.INC
    │   ├── SOUND.H
    │   ├── SOUNDINT.H
    │   ├── STAMP.INC
    │   ├── STRUCTS.H
    │   ├── SVGAPRIM.INC
    │   ├── TILE.H
    │   ├── TIMER.CPP
    │   ├── TIMER.H
    │   ├── TIMERDWN.CPP
    │   ├── TIMERINI.CPP
    │   ├── TOBUFF.ASM
    │   ├── VIDEO.H
    │   ├── WINCOMM.H
    │   ├── WINDOWS.CPP
    │   ├── WINHIDE.CPP
    │   ├── WRITEPCX.CPP
    │   ├── WSA.CPP
    │   ├── WSA.H
    │   ├── WWFILE.H
    │   ├── WWLIB32.H
    │   ├── WWMEM.H
    │   ├── WWMEM.INC
    │   ├── WWSTD.H
    │   ├── WW_WIN.H
    │   ├── XORDELTA.ASM
    │   ├── _DIPTABL.CPP
    │   └── _FILE.H
    ├── WINASM.ASM
    ├── WINSTUB.CPP
    ├── WWALLOC.H
    └── WWFILE.H

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================

# Visual Studio files
.vs/
*.user

# Output object and binary folders
[Dd]ebug/
[Rr]elease/
[Bb]in/


================================================
FILE: CnCRemastered.sln
================================================

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.1022
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TiberianDawn", "TiberianDawn\TiberianDawn.vcxproj", "{1380ED08-82A3-49C2-A171-1915574B3382}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RedAlert", "RedAlert\RedAlert.vcxproj", "{DA948ED9-EF67-4813-94B7-995BE956786E}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Release|x86 = Release|x86
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{1380ED08-82A3-49C2-A171-1915574B3382}.Release|x86.ActiveCfg = Release|Win32
		{1380ED08-82A3-49C2-A171-1915574B3382}.Release|x86.Build.0 = Release|Win32
		{DA948ED9-EF67-4813-94B7-995BE956786E}.Release|x86.ActiveCfg = Release|Win32
		{DA948ED9-EF67-4813-94B7-995BE956786E}.Release|x86.Build.0 = Release|Win32
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {712D2733-25EE-407D-AEF8-B2342757E119}
	EndGlobalSection
EndGlobal


================================================
FILE: CnCTDRAMapEditor/App.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="MobiusEditor.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
        </sectionGroup>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="MobiusEditor.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
        </sectionGroup>
    </configSections>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
    </startup>
    <applicationSettings>
        <MobiusEditor.Properties.Settings>
            <setting name="Quality" serializeAs="String">
                <value>2</value>
            </setting>
        </MobiusEditor.Properties.Settings>
    </applicationSettings>
    <userSettings>
        <MobiusEditor.Properties.Settings>
            <setting name="ToolDialogPosition" serializeAs="String">
                <value>0, 0</value>
            </setting>
            <setting name="ShowInviteWarning" serializeAs="String">
                <value>True</value>
            </setting>
        </MobiusEditor.Properties.Settings>
    </userSettings>
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="bin" />
      </assemblyBinding>
    </runtime>
</configuration>


================================================
FILE: CnCTDRAMapEditor/CnCTDRAMapEditor.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0">
  <Import Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{397CEF00-8930-4EC8-B15F-F7CF7193FB22}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <RootNamespace>MobiusEditor</RootNamespace>
    <AssemblyName Condition="'$(Configuration)'=='Debug'">CnCTDRAMapEditorD</AssemblyName>
    <AssemblyName Condition="'$(Configuration)'=='Release'">CnCTDRAMapEditor</AssemblyName>
    <AssemblyName Condition="'$(Configuration)'=='Gold'">CnCTDRAMapEditor</AssemblyName>
    <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <Deterministic>true</Deterministic>
    <SccProjectName>SAK</SccProjectName>
    <SccLocalPath>SAK</SccLocalPath>
    <SccAuxPath>SAK</SccAuxPath>
    <SccProvider>SAK</SccProvider>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>x64</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>TRACE;DEBUG;STEAMWORKS_WIN;STEAMWORKS_X64;DEVELOPER</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <LangVersion>7.3</LangVersion>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>x64</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE;STEAMWORKS_WIN;STEAMWORKS_X64;DEVELOPER</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <LangVersion>7.3</LangVersion>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Gold|AnyCPU'">
    <OutputPath>bin\Gold\</OutputPath>
    <DefineConstants>TRACE;STEAMWORKS_WIN;STEAMWORKS_X64</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x64</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>
  <PropertyGroup>
    <ApplicationIcon>Resources\GameIcon00.ico</ApplicationIcon>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.IO.Compression" />
    <Reference Include="System.IO.Compression.FileSystem" />
    <Reference Include="System.Numerics" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Deployment" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Controls\BasicSettings.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Include="Controls\BasicSettings.Designer.cs">
      <DependentUpon>BasicSettings.cs</DependentUpon>
    </Compile>
    <Compile Include="Controls\BriefingSettings.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Include="Controls\BriefingSettings.Designer.cs">
      <DependentUpon>BriefingSettings.cs</DependentUpon>
    </Compile>
    <Compile Include="Controls\ImageTooltip.cs">
      <SubType>Component</SubType>
    </Compile>
    <Compile Include="Controls\ImageTooltip.Designer.cs">
      <DependentUpon>ImageTooltip.cs</DependentUpon>
    </Compile>
    <Compile Include="Controls\MapPanel.cs">
      <SubType>Component</SubType>
    </Compile>
    <Compile Include="Controls\MapPanel.Designer.cs">
      <DependentUpon>MapPanel.cs</DependentUpon>
    </Compile>
    <Compile Include="Controls\MenuButton.cs">
      <SubType>Component</SubType>
    </Compile>
    <Compile Include="Controls\MenuButton.Designer.cs">
      <DependentUpon>MenuButton.cs</DependentUpon>
    </Compile>
    <Compile Include="Controls\PropertiesComboBox.cs">
      <SubType>Component</SubType>
    </Compile>
    <Compile Include="Controls\PropertiesComboBox.Designer.cs">
      <DependentUpon>PropertiesComboBox.cs</DependentUpon>
    </Compile>
    <Compile Include="Controls\TerrainProperties.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Include="Controls\TerrainProperties.Designer.cs">
      <DependentUpon>TerrainProperties.cs</DependentUpon>
    </Compile>
    <Compile Include="Controls\ObjectProperties.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Include="Controls\ObjectProperties.Designer.cs">
      <DependentUpon>ObjectProperties.cs</DependentUpon>
    </Compile>
    <Compile Include="Controls\PlayerSettings.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Include="Controls\PlayerSettings.Designer.cs">
      <DependentUpon>PlayerSettings.cs</DependentUpon>
    </Compile>
    <Compile Include="Controls\TypeComboBox.cs">
      <SubType>Component</SubType>
    </Compile>
    <Compile Include="Controls\TypeComboBox.Designer.cs">
      <DependentUpon>TypeComboBox.cs</DependentUpon>
    </Compile>
    <Compile Include="Dialogs\ErrorMessageBox.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Dialogs\ErrorMessageBox.Designer.cs">
      <DependentUpon>ErrorMessageBox.cs</DependentUpon>
    </Compile>
    <Compile Include="Dialogs\InviteMessageBox.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Dialogs\InviteMessageBox.Designer.cs">
      <DependentUpon>InviteMessageBox.cs</DependentUpon>
    </Compile>
    <Compile Include="Dialogs\MapSettingsDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Dialogs\MapSettingsDialog.Designer.cs">
      <DependentUpon>MapSettingsDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Dialogs\NewMapDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Dialogs\NewMapDialog.Designer.cs">
      <DependentUpon>NewMapDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Dialogs\SteamDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Dialogs\SteamDialog.Designer.cs">
      <DependentUpon>SteamDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Dialogs\TriggersDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Dialogs\TriggersDialog.Designer.cs">
      <DependentUpon>TriggersDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Dialogs\TeamTypesDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Dialogs\TeamTypesDialog.Designer.cs">
      <DependentUpon>TeamTypesDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Event\RenderEventArgs.cs" />
    <Compile Include="Event\UndoRedoEventArgs.cs" />
    <Compile Include="Globals.cs" />
    <Compile Include="Interface\IBrowsableType.cs" />
    <Compile Include="Interface\ICellOccupier.cs" />
    <Compile Include="Interface\ICellOverlapper.cs" />
    <Compile Include="Interface\IGamePlugin.cs" />
    <Compile Include="Interface\INamedType.cs" />
    <Compile Include="Interface\ITechnoType.cs" />
    <Compile Include="Interface\ITool.cs" />
    <Compile Include="Interface\IWidget.cs" />
    <Compile Include="MainForm.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="MainForm.Designer.cs">
      <DependentUpon>MainForm.cs</DependentUpon>
    </Compile>
    <Compile Include="Model\BasicSection.cs" />
    <Compile Include="Model\BriefingSection.cs" />
    <Compile Include="Model\Building.cs" />
    <Compile Include="Model\CellGrid.cs" />
    <Compile Include="Model\CellMetrics.cs" />
    <Compile Include="Model\CellTrigger.cs" />
    <Compile Include="Model\DirectionType.cs" />
    <Compile Include="Model\House.cs" />
    <Compile Include="Model\HouseType.cs" />
    <Compile Include="Model\BuildingType.cs" />
    <Compile Include="Model\Infantry.cs" />
    <Compile Include="Model\Map.cs" />
    <Compile Include="Model\MapSection.cs" />
    <Compile Include="Model\OccupierSet.cs" />
    <Compile Include="Model\OverlapperSet.cs" />
    <Compile Include="Model\Overlay.cs" />
    <Compile Include="Model\OverlayType.cs" />
    <Compile Include="Model\Smudge.cs" />
    <Compile Include="Model\SmudgeType.cs" />
    <Compile Include="Model\SteamSection.cs" />
    <Compile Include="Model\TeamType.cs" />
    <Compile Include="Model\Template.cs" />
    <Compile Include="Model\TemplateType.cs" />
    <Compile Include="Model\Terrain.cs" />
    <Compile Include="Model\TerrainType.cs" />
    <Compile Include="Model\TheaterType.cs" />
    <Compile Include="Model\Trigger.cs" />
    <Compile Include="Model\InfantryType.cs" />
    <Compile Include="Model\TypeItem.cs" />
    <Compile Include="Model\Unit.cs" />
    <Compile Include="Model\UnitType.cs" />
    <Compile Include="Model\Waypoint.cs" />
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="RedAlert\ActionDataTypes.cs" />
    <Compile Include="RedAlert\ActionTypes.cs" />
    <Compile Include="RedAlert\BasicSection.cs" />
    <Compile Include="RedAlert\BuildingTypes.cs" />
    <Compile Include="RedAlert\Constants.cs" />
    <Compile Include="RedAlert\DirectionTypes.cs" />
    <Compile Include="RedAlert\EventTypes.cs" />
    <Compile Include="RedAlert\GamePlugin.cs" />
    <Compile Include="RedAlert\House.cs" />
    <Compile Include="RedAlert\HouseTypes.cs" />
    <Compile Include="RedAlert\InfantryTypes.cs" />
    <Compile Include="RedAlert\MissionTypes.cs" />
    <Compile Include="RedAlert\OverlayTypes.cs" />
    <Compile Include="RedAlert\SmudgeTypes.cs" />
    <Compile Include="RedAlert\TeamMissionTypes.cs" />
    <Compile Include="RedAlert\TemplateTypes.cs" />
    <Compile Include="RedAlert\TerrainTypes.cs" />
    <Compile Include="RedAlert\TheaterTypes.cs" />
    <Compile Include="RedAlert\UnitTypes.cs" />
    <Compile Include="Render\MapRenderer.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamapplist.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamapps.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamclient.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamcontroller.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamfriends.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamgameserver.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamgameserverapps.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamgameserverclient.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamgameserverhttp.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamgameserverinventory.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamgameservernetworking.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamgameserverstats.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamgameserverugc.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamgameserverutils.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamhtmlsurface.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamhttp.cs" />
    <Compile Include="Steamworks.NET\autogen\isteaminput.cs" />
    <Compile Include="Steamworks.NET\autogen\isteaminventory.cs" />
    <Compile Include="Steamworks.NET\autogen\isteammatchmaking.cs" />
    <Compile Include="Steamworks.NET\autogen\isteammusic.cs" />
    <Compile Include="Steamworks.NET\autogen\isteammusicremote.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamnetworking.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamparentalsettings.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamremoteplay.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamremotestorage.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamscreenshots.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamugc.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamunifiedmessages.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamuser.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamuserstats.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamutils.cs" />
    <Compile Include="Steamworks.NET\autogen\isteamvideo.cs" />
    <Compile Include="Steamworks.NET\autogen\NativeMethods.cs" />
    <Compile Include="Steamworks.NET\autogen\SteamCallbacks.cs" />
    <Compile Include="Steamworks.NET\autogen\SteamConstants.cs" />
    <Compile Include="Steamworks.NET\autogen\SteamEnums.cs" />
    <Compile Include="Steamworks.NET\autogen\SteamStructs.cs" />
    <Compile Include="Steamworks.NET\CallbackDispatcher.cs" />
    <Compile Include="Steamworks.NET\CallbackIdentity.cs" />
    <Compile Include="Steamworks.NET\InteropHelp.cs" />
    <Compile Include="Steamworks.NET\ISteamMatchmakingResponses.cs" />
    <Compile Include="Steamworks.NET\Packsize.cs" />
    <Compile Include="Steamworks.NET\Steam.cs" />
    <Compile Include="Steamworks.NET\types\MatchmakingTypes\gameserveritem_t.cs" />
    <Compile Include="Steamworks.NET\types\MatchmakingTypes\servernetadr_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamClientPublic\CGameID.cs" />
    <Compile Include="Steamworks.NET\types\SteamClientPublic\CSteamID.cs" />
    <Compile Include="Steamworks.NET\types\SteamClientPublic\HAuthTicket.cs" />
    <Compile Include="Steamworks.NET\types\SteamClient\SteamAPIWarningMessageHook_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamClient\SteamAPI_CheckCallbackRegistered_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamClient\SteamAPI_PostAPIResultInProcess_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamController\ControllerActionSetHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamController\ControllerAnalogActionHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamController\ControllerDigitalActionHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamController\ControllerHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamFriends\FriendsGroupID_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamHTMLSurface\HHTMLBrowser.cs" />
    <Compile Include="Steamworks.NET\types\SteamHTTP\HTTPCookieContainerHandle.cs" />
    <Compile Include="Steamworks.NET\types\SteamHTTP\HTTPRequestHandle.cs" />
    <Compile Include="Steamworks.NET\types\SteamInput\InputActionSetHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamInput\InputAnalogActionHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamInput\InputDigitalActionHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamInput\InputHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamInventory\SteamInventoryResult_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamInventory\SteamInventoryUpdateHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamInventory\SteamItemDef_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamInventory\SteamItemInstanceID_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamMatchmaking\HServerListRequest.cs" />
    <Compile Include="Steamworks.NET\types\SteamMatchmaking\HServerQuery.cs" />
    <Compile Include="Steamworks.NET\types\SteamNetworking\SNetListenSocket_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamNetworking\SNetSocket_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamRemoteStorage\PublishedFileId_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamRemoteStorage\PublishedFileUpdateHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamRemoteStorage\UGCFileWriteStreamHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamRemoteStorage\UGCHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamScreenshots\ScreenshotHandle.cs" />
    <Compile Include="Steamworks.NET\types\SteamTypes\AccountID_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamTypes\AppId_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamTypes\DepotId_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamTypes\ManifestId_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamTypes\PartyBeaconID_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamTypes\RTime32.cs" />
    <Compile Include="Steamworks.NET\types\SteamTypes\SiteId_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamTypes\SteamAPICall_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamUGC\UGCQueryHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamUGC\UGCUpdateHandle_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamUnifiedMessages\ClientUnifiedMessageHandle.cs" />
    <Compile Include="Steamworks.NET\types\SteamUserStats\SteamLeaderboardEntries_t.cs" />
    <Compile Include="Steamworks.NET\types\SteamUserStats\SteamLeaderboard_t.cs" />
    <Compile Include="Steamworks.NET\types\Steam_api_common\HSteamPipe.cs" />
    <Compile Include="Steamworks.NET\types\Steam_api_common\HSteamUser.cs" />
    <Compile Include="TiberianDawn\ActionTypes.cs" />
    <Compile Include="TiberianDawn\BasicSection.cs" />
    <Compile Include="TiberianDawn\Constants.cs" />
    <Compile Include="TiberianDawn\DirectionTypes.cs" />
    <Compile Include="TiberianDawn\EventTypes.cs" />
    <Compile Include="TiberianDawn\GamePlugin.cs" />
    <Compile Include="TiberianDawn\House.cs" />
    <Compile Include="TiberianDawn\HouseTypes.cs" />
    <Compile Include="TiberianDawn\BuildingTypes.cs" />
    <Compile Include="TiberianDawn\MissionTypes.cs" />
    <Compile Include="TiberianDawn\OverlayTypes.cs" />
    <Compile Include="TiberianDawn\SmudgeTypes.cs" />
    <Compile Include="TiberianDawn\TeamMissionTypes.cs" />
    <Compile Include="TiberianDawn\TemplateTypes.cs" />
    <Compile Include="TiberianDawn\TerrainTypes.cs" />
    <Compile Include="TiberianDawn\TheaterTypes.cs" />
    <Compile Include="TiberianDawn\InfantryTypes.cs" />
    <Compile Include="TiberianDawn\UnitTypes.cs" />
    <Compile Include="Tools\BuildingTool.cs" />
    <Compile Include="Tools\Dialogs\ResourcesToolDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Tools\Dialogs\ResourcesToolDialog.Designer.cs">
      <DependentUpon>ResourcesToolDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Tools\Dialogs\ObjectToolDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Tools\Dialogs\ObjectToolDialog.Designer.cs">
      <DependentUpon>ObjectToolDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Tools\Dialogs\GenericToolDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Tools\Dialogs\GenericToolDialog.Designer.cs">
      <DependentUpon>GenericToolDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Tools\Dialogs\TerrainToolDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Tools\Dialogs\TerrainToolDialog.Designer.cs">
      <DependentUpon>TerrainToolDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Tools\Dialogs\TemplateToolDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Tools\Dialogs\TemplateToolDialog.Designer.cs">
      <DependentUpon>TemplateToolDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Tools\Dialogs\CellTriggersToolDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Tools\Dialogs\CellTriggersToolDialog.Designer.cs">
      <DependentUpon>CellTriggersToolDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Tools\Dialogs\WaypointsToolDialog.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Tools\Dialogs\WaypointsToolDialog.Designer.cs">
      <DependentUpon>WaypointsToolDialog.cs</DependentUpon>
    </Compile>
    <Compile Include="Tools\InfantryTool.cs" />
    <Compile Include="Tools\OverlaysTool.cs" />
    <Compile Include="Tools\ResourcesTool.cs" />
    <Compile Include="Tools\SmudgeTool.cs" />
    <Compile Include="Tools\TemplateTool.cs" />
    <Compile Include="Tools\TerrainTool.cs" />
    <Compile Include="Tools\UnitTool.cs" />
    <Compile Include="Tools\ViewTool.cs" />
    <Compile Include="Tools\WallsTool.cs" />
    <Compile Include="Tools\CellTriggersTool.cs" />
    <Compile Include="Tools\WaypointsTool.cs" />
    <Compile Include="Utility\CRC.cs" />
    <Compile Include="Utility\ExtensionMethods.cs" />
    <Compile Include="Utility\GameTextManager.cs" />
    <Compile Include="Utility\INI.cs" />
    <Compile Include="Utility\Megafile.cs" />
    <Compile Include="Utility\MegafileBuilder.cs" />
    <Compile Include="Utility\MegafileManager.cs" />
    <Compile Include="Utility\MRU.cs" />
    <Compile Include="Utility\PropertyTracker.cs" />
    <Compile Include="Utility\SteamworksUGC.cs" />
    <Compile Include="Utility\TeamColor.cs" />
    <Compile Include="Utility\TeamColorManager.cs" />
    <Compile Include="Utility\TextureManager.cs" />
    <Compile Include="Utility\TGASharpLib.cs" />
    <Compile Include="Utility\Tileset.cs" />
    <Compile Include="Utility\TilesetManager.cs" />
    <Compile Include="Utility\UndoRedoList.cs" />
    <Compile Include="Utility\WWCompression.cs" />
    <Compile Include="Widgets\NavigationWidget.cs" />
    <EmbeddedResource Include="Controls\BasicSettings.resx">
      <DependentUpon>BasicSettings.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Controls\BriefingSettings.resx">
      <DependentUpon>BriefingSettings.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Controls\MapPanel.resx">
      <DependentUpon>MapPanel.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Controls\TerrainProperties.resx">
      <DependentUpon>TerrainProperties.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Controls\ObjectProperties.resx">
      <DependentUpon>ObjectProperties.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Controls\PlayerSettings.resx">
      <DependentUpon>PlayerSettings.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Dialogs\ErrorMessageBox.resx">
      <DependentUpon>ErrorMessageBox.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Dialogs\InviteMessageBox.resx">
      <DependentUpon>InviteMessageBox.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Dialogs\MapSettingsDialog.resx">
      <DependentUpon>MapSettingsDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Dialogs\NewMapDialog.resx">
      <DependentUpon>NewMapDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Dialogs\SteamDialog.resx">
      <DependentUpon>SteamDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Dialogs\TriggersDialog.resx">
      <DependentUpon>TriggersDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Dialogs\TeamTypesDialog.resx">
      <DependentUpon>TeamTypesDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="MainForm.resx">
      <DependentUpon>MainForm.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Properties\Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
      <SubType>Designer</SubType>
    </EmbeddedResource>
    <Compile Include="Properties\Resources.Designer.cs">
      <AutoGen>True</AutoGen>
      <DependentUpon>Resources.resx</DependentUpon>
      <DesignTime>True</DesignTime>
    </Compile>
    <EmbeddedResource Include="Tools\Dialogs\ResourcesToolDialog.resx">
      <DependentUpon>ResourcesToolDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Tools\Dialogs\ObjectToolDialog.resx">
      <DependentUpon>ObjectToolDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Tools\Dialogs\GenericToolDialog.resx">
      <DependentUpon>GenericToolDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Tools\Dialogs\TerrainToolDialog.resx">
      <DependentUpon>TerrainToolDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Tools\Dialogs\TemplateToolDialog.resx">
      <DependentUpon>TemplateToolDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Tools\Dialogs\CellTriggersToolDialog.resx">
      <DependentUpon>CellTriggersToolDialog.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="Tools\Dialogs\WaypointsToolDialog.resx">
      <DependentUpon>WaypointsToolDialog.cs</DependentUpon>
    </EmbeddedResource>
    <None Include="Properties\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
    </None>
    <Compile Include="Properties\Settings.Designer.cs">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <DesignTimeSharedInput>True</DesignTimeSharedInput>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <None Include="App.config" />
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Include="Resources\GameIcon00.ico" />
  </ItemGroup>
  <ItemGroup>
    <None Include="Resources\UI_CustomMissionPreviewDefault.png" />
    <Content Include="Steamworks.NET\redist\steam_api.dll" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json">
      <Version>12.0.3</Version>
    </PackageReference>
    <PackageReference Include="Pfim">
      <Version>0.9.1</Version>
    </PackageReference>
    <PackageReference Include="System.ValueTuple">
      <Version>4.5.0</Version>
    </PackageReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  </Project>

================================================
FILE: CnCTDRAMapEditor/Controls/BasicSettings.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class BasicSettings
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
            this.label10 = new System.Windows.Forms.Label();
            this.loseComboBox = new System.Windows.Forms.ComboBox();
            this.isSinglePlayerCheckBox = new System.Windows.Forms.CheckBox();
            this.win4ComboBox = new System.Windows.Forms.ComboBox();
            this.win3ComboBox = new System.Windows.Forms.ComboBox();
            this.win2ComboBox = new System.Windows.Forms.ComboBox();
            this.winComboBox = new System.Windows.Forms.ComboBox();
            this.actionComboBox = new System.Windows.Forms.ComboBox();
            this.briefComboBox = new System.Windows.Forms.ComboBox();
            this.introComboBox = new System.Windows.Forms.ComboBox();
            this.win4Label = new System.Windows.Forms.Label();
            this.win3Label = new System.Windows.Forms.Label();
            this.win2Label = new System.Windows.Forms.Label();
            this.label9 = new System.Windows.Forms.Label();
            this.label8 = new System.Windows.Forms.Label();
            this.label7 = new System.Windows.Forms.Label();
            this.label1 = new System.Windows.Forms.Label();
            this.buildLevelLabel = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.label3 = new System.Windows.Forms.Label();
            this.label4 = new System.Windows.Forms.Label();
            this.label5 = new System.Windows.Forms.Label();
            this.nameTxt = new System.Windows.Forms.TextBox();
            this.playerComboBox = new System.Windows.Forms.ComboBox();
            this.buidLevelNud = new System.Windows.Forms.NumericUpDown();
            this.percentNud = new System.Windows.Forms.NumericUpDown();
            this.carryOverMoneyNud = new System.Windows.Forms.NumericUpDown();
            this.label6 = new System.Windows.Forms.Label();
            this.authorTxt = new System.Windows.Forms.TextBox();
            this.baseLabel = new System.Windows.Forms.Label();
            this.baseComboBox = new System.Windows.Forms.ComboBox();
            this.tableLayoutPanel1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.buidLevelNud)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.percentNud)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.carryOverMoneyNud)).BeginInit();
            this.SuspendLayout();
            // 
            // tableLayoutPanel1
            // 
            this.tableLayoutPanel1.AutoSize = true;
            this.tableLayoutPanel1.ColumnCount = 2;
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
            this.tableLayoutPanel1.Controls.Add(this.label10, 0, 15);
            this.tableLayoutPanel1.Controls.Add(this.loseComboBox, 1, 15);
            this.tableLayoutPanel1.Controls.Add(this.isSinglePlayerCheckBox, 1, 16);
            this.tableLayoutPanel1.Controls.Add(this.win4ComboBox, 1, 14);
            this.tableLayoutPanel1.Controls.Add(this.win3ComboBox, 1, 13);
            this.tableLayoutPanel1.Controls.Add(this.win2ComboBox, 1, 12);
            this.tableLayoutPanel1.Controls.Add(this.winComboBox, 1, 11);
            this.tableLayoutPanel1.Controls.Add(this.actionComboBox, 1, 10);
            this.tableLayoutPanel1.Controls.Add(this.briefComboBox, 1, 9);
            this.tableLayoutPanel1.Controls.Add(this.introComboBox, 1, 8);
            this.tableLayoutPanel1.Controls.Add(this.win4Label, 0, 14);
            this.tableLayoutPanel1.Controls.Add(this.win3Label, 0, 13);
            this.tableLayoutPanel1.Controls.Add(this.win2Label, 0, 12);
            this.tableLayoutPanel1.Controls.Add(this.label9, 0, 11);
            this.tableLayoutPanel1.Controls.Add(this.label8, 0, 10);
            this.tableLayoutPanel1.Controls.Add(this.label7, 0, 9);
            this.tableLayoutPanel1.Controls.Add(this.label1, 0, 8);
            this.tableLayoutPanel1.Controls.Add(this.buildLevelLabel, 0, 0);
            this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1);
            this.tableLayoutPanel1.Controls.Add(this.label3, 0, 2);
            this.tableLayoutPanel1.Controls.Add(this.label4, 0, 3);
            this.tableLayoutPanel1.Controls.Add(this.label5, 0, 4);
            this.tableLayoutPanel1.Controls.Add(this.nameTxt, 1, 2);
            this.tableLayoutPanel1.Controls.Add(this.playerComboBox, 1, 4);
            this.tableLayoutPanel1.Controls.Add(this.buidLevelNud, 1, 0);
            this.tableLayoutPanel1.Controls.Add(this.percentNud, 1, 3);
            this.tableLayoutPanel1.Controls.Add(this.carryOverMoneyNud, 1, 1);
            this.tableLayoutPanel1.Controls.Add(this.label6, 0, 5);
            this.tableLayoutPanel1.Controls.Add(this.authorTxt, 1, 5);
            this.tableLayoutPanel1.Controls.Add(this.baseLabel, 0, 6);
            this.tableLayoutPanel1.Controls.Add(this.baseComboBox, 1, 6);
            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
            this.tableLayoutPanel1.RowCount = 17;
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
            this.tableLayoutPanel1.Size = new System.Drawing.Size(300, 403);
            this.tableLayoutPanel1.TabIndex = 1;
            // 
            // label10
            // 
            this.label10.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label10.Location = new System.Drawing.Point(2, 355);
            this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label10.Name = "label10";
            this.label10.Size = new System.Drawing.Size(87, 25);
            this.label10.TabIndex = 35;
            this.label10.Text = "Lose";
            this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // loseComboBox
            // 
            this.loseComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.loseComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.loseComboBox.FormattingEnabled = true;
            this.loseComboBox.Location = new System.Drawing.Point(93, 357);
            this.loseComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.loseComboBox.Name = "loseComboBox";
            this.loseComboBox.Size = new System.Drawing.Size(205, 21);
            this.loseComboBox.TabIndex = 34;
            // 
            // isSinglePlayerCheckBox
            // 
            this.isSinglePlayerCheckBox.AutoSize = true;
            this.isSinglePlayerCheckBox.Location = new System.Drawing.Point(93, 382);
            this.isSinglePlayerCheckBox.Margin = new System.Windows.Forms.Padding(2);
            this.isSinglePlayerCheckBox.Name = "isSinglePlayerCheckBox";
            this.isSinglePlayerCheckBox.Size = new System.Drawing.Size(87, 17);
            this.isSinglePlayerCheckBox.TabIndex = 32;
            this.isSinglePlayerCheckBox.Text = "Single-Player";
            this.isSinglePlayerCheckBox.UseVisualStyleBackColor = true;
            this.isSinglePlayerCheckBox.CheckedChanged += new System.EventHandler(this.isSinglePlayerCheckBox_CheckedChanged);
            // 
            // win4ComboBox
            // 
            this.win4ComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.win4ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.win4ComboBox.FormattingEnabled = true;
            this.win4ComboBox.Location = new System.Drawing.Point(93, 332);
            this.win4ComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.win4ComboBox.Name = "win4ComboBox";
            this.win4ComboBox.Size = new System.Drawing.Size(205, 21);
            this.win4ComboBox.TabIndex = 31;
            // 
            // win3ComboBox
            // 
            this.win3ComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.win3ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.win3ComboBox.FormattingEnabled = true;
            this.win3ComboBox.Location = new System.Drawing.Point(93, 307);
            this.win3ComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.win3ComboBox.Name = "win3ComboBox";
            this.win3ComboBox.Size = new System.Drawing.Size(205, 21);
            this.win3ComboBox.TabIndex = 30;
            // 
            // win2ComboBox
            // 
            this.win2ComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.win2ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.win2ComboBox.FormattingEnabled = true;
            this.win2ComboBox.Location = new System.Drawing.Point(93, 282);
            this.win2ComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.win2ComboBox.Name = "win2ComboBox";
            this.win2ComboBox.Size = new System.Drawing.Size(205, 21);
            this.win2ComboBox.TabIndex = 29;
            // 
            // winComboBox
            // 
            this.winComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.winComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.winComboBox.FormattingEnabled = true;
            this.winComboBox.Location = new System.Drawing.Point(93, 257);
            this.winComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.winComboBox.Name = "winComboBox";
            this.winComboBox.Size = new System.Drawing.Size(205, 21);
            this.winComboBox.TabIndex = 28;
            // 
            // actionComboBox
            // 
            this.actionComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.actionComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.actionComboBox.FormattingEnabled = true;
            this.actionComboBox.Location = new System.Drawing.Point(93, 232);
            this.actionComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.actionComboBox.Name = "actionComboBox";
            this.actionComboBox.Size = new System.Drawing.Size(205, 21);
            this.actionComboBox.TabIndex = 27;
            // 
            // briefComboBox
            // 
            this.briefComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.briefComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.briefComboBox.FormattingEnabled = true;
            this.briefComboBox.Location = new System.Drawing.Point(93, 207);
            this.briefComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.briefComboBox.Name = "briefComboBox";
            this.briefComboBox.Size = new System.Drawing.Size(205, 21);
            this.briefComboBox.TabIndex = 26;
            // 
            // introComboBox
            // 
            this.introComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.introComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.introComboBox.FormattingEnabled = true;
            this.introComboBox.Location = new System.Drawing.Point(93, 182);
            this.introComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.introComboBox.Name = "introComboBox";
            this.introComboBox.Size = new System.Drawing.Size(205, 21);
            this.introComboBox.TabIndex = 25;
            // 
            // win4Label
            // 
            this.win4Label.Dock = System.Windows.Forms.DockStyle.Fill;
            this.win4Label.Location = new System.Drawing.Point(2, 330);
            this.win4Label.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.win4Label.Name = "win4Label";
            this.win4Label.Size = new System.Drawing.Size(87, 25);
            this.win4Label.TabIndex = 24;
            this.win4Label.Text = "Win4";
            this.win4Label.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // win3Label
            // 
            this.win3Label.Dock = System.Windows.Forms.DockStyle.Fill;
            this.win3Label.Location = new System.Drawing.Point(2, 305);
            this.win3Label.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.win3Label.Name = "win3Label";
            this.win3Label.Size = new System.Drawing.Size(87, 25);
            this.win3Label.TabIndex = 23;
            this.win3Label.Text = "Win3";
            this.win3Label.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // win2Label
            // 
            this.win2Label.Dock = System.Windows.Forms.DockStyle.Fill;
            this.win2Label.Location = new System.Drawing.Point(2, 280);
            this.win2Label.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.win2Label.Name = "win2Label";
            this.win2Label.Size = new System.Drawing.Size(87, 25);
            this.win2Label.TabIndex = 22;
            this.win2Label.Text = "Win2";
            this.win2Label.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label9
            // 
            this.label9.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label9.Location = new System.Drawing.Point(2, 255);
            this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label9.Name = "label9";
            this.label9.Size = new System.Drawing.Size(87, 25);
            this.label9.TabIndex = 21;
            this.label9.Text = "Win";
            this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label8
            // 
            this.label8.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label8.Location = new System.Drawing.Point(2, 230);
            this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label8.Name = "label8";
            this.label8.Size = new System.Drawing.Size(87, 25);
            this.label8.TabIndex = 20;
            this.label8.Text = "Action";
            this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label7
            // 
            this.label7.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label7.Location = new System.Drawing.Point(2, 205);
            this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label7.Name = "label7";
            this.label7.Size = new System.Drawing.Size(87, 25);
            this.label7.TabIndex = 19;
            this.label7.Text = "Brief";
            this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label1
            // 
            this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label1.Location = new System.Drawing.Point(2, 180);
            this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(87, 25);
            this.label1.TabIndex = 18;
            this.label1.Text = "Intro";
            this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // buildLevelLabel
            // 
            this.buildLevelLabel.Dock = System.Windows.Forms.DockStyle.Fill;
            this.buildLevelLabel.Location = new System.Drawing.Point(3, 0);
            this.buildLevelLabel.Name = "buildLevelLabel";
            this.buildLevelLabel.Size = new System.Drawing.Size(85, 26);
            this.buildLevelLabel.TabIndex = 0;
            this.buildLevelLabel.Text = "Build Level";
            this.buildLevelLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label2
            // 
            this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label2.Location = new System.Drawing.Point(3, 26);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(85, 26);
            this.label2.TabIndex = 2;
            this.label2.Text = "Carryover Money";
            this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label3
            // 
            this.label3.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label3.Location = new System.Drawing.Point(3, 52);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(85, 26);
            this.label3.TabIndex = 3;
            this.label3.Text = "Name";
            this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label4
            // 
            this.label4.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label4.Location = new System.Drawing.Point(3, 78);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(85, 26);
            this.label4.TabIndex = 4;
            this.label4.Text = "Percent";
            this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label5
            // 
            this.label5.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label5.Location = new System.Drawing.Point(3, 104);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(85, 27);
            this.label5.TabIndex = 5;
            this.label5.Text = "Player";
            this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // nameTxt
            // 
            this.nameTxt.Dock = System.Windows.Forms.DockStyle.Fill;
            this.nameTxt.Location = new System.Drawing.Point(94, 55);
            this.nameTxt.Name = "nameTxt";
            this.nameTxt.Size = new System.Drawing.Size(203, 20);
            this.nameTxt.TabIndex = 7;
            // 
            // playerComboBox
            // 
            this.playerComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.playerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.playerComboBox.FormattingEnabled = true;
            this.playerComboBox.Location = new System.Drawing.Point(94, 107);
            this.playerComboBox.Name = "playerComboBox";
            this.playerComboBox.Size = new System.Drawing.Size(203, 21);
            this.playerComboBox.TabIndex = 9;
            // 
            // buidLevelNud
            // 
            this.buidLevelNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.buidLevelNud.Location = new System.Drawing.Point(94, 3);
            this.buidLevelNud.Name = "buidLevelNud";
            this.buidLevelNud.Size = new System.Drawing.Size(203, 20);
            this.buidLevelNud.TabIndex = 10;
            // 
            // percentNud
            // 
            this.percentNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.percentNud.Location = new System.Drawing.Point(94, 81);
            this.percentNud.Name = "percentNud";
            this.percentNud.Size = new System.Drawing.Size(203, 20);
            this.percentNud.TabIndex = 11;
            // 
            // carryOverMoneyNud
            // 
            this.carryOverMoneyNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.carryOverMoneyNud.Location = new System.Drawing.Point(94, 29);
            this.carryOverMoneyNud.Name = "carryOverMoneyNud";
            this.carryOverMoneyNud.Size = new System.Drawing.Size(203, 20);
            this.carryOverMoneyNud.TabIndex = 12;
            // 
            // label6
            // 
            this.label6.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label6.Location = new System.Drawing.Point(2, 131);
            this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label6.Name = "label6";
            this.label6.Size = new System.Drawing.Size(87, 24);
            this.label6.TabIndex = 13;
            this.label6.Text = "Author";
            this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // authorTxt
            // 
            this.authorTxt.Dock = System.Windows.Forms.DockStyle.Fill;
            this.authorTxt.Location = new System.Drawing.Point(93, 133);
            this.authorTxt.Margin = new System.Windows.Forms.Padding(2);
            this.authorTxt.Name = "authorTxt";
            this.authorTxt.Size = new System.Drawing.Size(205, 20);
            this.authorTxt.TabIndex = 14;
            // 
            // baseLabel
            // 
            this.baseLabel.Dock = System.Windows.Forms.DockStyle.Fill;
            this.baseLabel.Location = new System.Drawing.Point(2, 155);
            this.baseLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.baseLabel.Name = "baseLabel";
            this.baseLabel.Size = new System.Drawing.Size(87, 25);
            this.baseLabel.TabIndex = 15;
            this.baseLabel.Text = "Base";
            this.baseLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // baseComboBox
            // 
            this.baseComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.baseComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.baseComboBox.FormattingEnabled = true;
            this.baseComboBox.Location = new System.Drawing.Point(93, 157);
            this.baseComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.baseComboBox.Name = "baseComboBox";
            this.baseComboBox.Size = new System.Drawing.Size(205, 21);
            this.baseComboBox.TabIndex = 16;
            // 
            // BasicSettings
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.tableLayoutPanel1);
            this.Name = "BasicSettings";
            this.Size = new System.Drawing.Size(300, 403);
            this.tableLayoutPanel1.ResumeLayout(false);
            this.tableLayoutPanel1.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)(this.buidLevelNud)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.percentNud)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.carryOverMoneyNud)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
        private System.Windows.Forms.Label buildLevelLabel;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.Label label4;
        private System.Windows.Forms.Label label5;
        private System.Windows.Forms.TextBox nameTxt;
        private System.Windows.Forms.ComboBox playerComboBox;
        private System.Windows.Forms.NumericUpDown buidLevelNud;
        private System.Windows.Forms.NumericUpDown percentNud;
        private System.Windows.Forms.NumericUpDown carryOverMoneyNud;
        private System.Windows.Forms.Label label6;
        private System.Windows.Forms.TextBox authorTxt;
        private System.Windows.Forms.Label baseLabel;
        private System.Windows.Forms.ComboBox baseComboBox;
        private System.Windows.Forms.Label win4Label;
        private System.Windows.Forms.Label win3Label;
        private System.Windows.Forms.Label win2Label;
        private System.Windows.Forms.Label label9;
        private System.Windows.Forms.Label label8;
        private System.Windows.Forms.Label label7;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.CheckBox isSinglePlayerCheckBox;
        private System.Windows.Forms.ComboBox win4ComboBox;
        private System.Windows.Forms.ComboBox win3ComboBox;
        private System.Windows.Forms.ComboBox win2ComboBox;
        private System.Windows.Forms.ComboBox winComboBox;
        private System.Windows.Forms.ComboBox actionComboBox;
        private System.Windows.Forms.ComboBox briefComboBox;
        private System.Windows.Forms.ComboBox introComboBox;
        private System.Windows.Forms.ComboBox loseComboBox;
        private System.Windows.Forms.Label label10;
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/BasicSettings.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
using MobiusEditor.Interface;
using System;
using System.Data;
using System.Linq;
using System.Windows.Forms;

namespace MobiusEditor.Controls
{
    public partial class BasicSettings : UserControl
    {
        public BasicSettings(IGamePlugin plugin, dynamic basicSection)
        {
            InitializeComponent();

            playerComboBox.DataSource = plugin.Map.Houses.Select(h => h.Type.Name).ToArray();
            baseComboBox.DataSource = plugin.Map.Houses.Select(h => h.Type.Name).ToArray();
            introComboBox.DataSource = plugin.Map.MovieTypes.ToArray();
            briefComboBox.DataSource = plugin.Map.MovieTypes.ToArray();
            actionComboBox.DataSource = plugin.Map.MovieTypes.ToArray();
            winComboBox.DataSource = plugin.Map.MovieTypes.ToArray();
            win2ComboBox.DataSource = plugin.Map.MovieTypes.ToArray();
            win3ComboBox.DataSource = plugin.Map.MovieTypes.ToArray();
            win4ComboBox.DataSource = plugin.Map.MovieTypes.ToArray();
            loseComboBox.DataSource = plugin.Map.MovieTypes.ToArray();

            carryOverMoneyNud.DataBindings.Add("Value", basicSection, "CarryOverMoney");
            nameTxt.DataBindings.Add("Text", basicSection, "Name");
            percentNud.DataBindings.Add("Value", basicSection, "Percent");
            playerComboBox.DataBindings.Add("SelectedItem", basicSection, "Player");
            authorTxt.DataBindings.Add("Text", basicSection, "Author");
            isSinglePlayerCheckBox.DataBindings.Add("Checked", basicSection, "SoloMission");
            introComboBox.DataBindings.Add("SelectedItem", basicSection, "Intro");
            briefComboBox.DataBindings.Add("SelectedItem", basicSection, "Brief");
            actionComboBox.DataBindings.Add("SelectedItem", basicSection, "Action");
            winComboBox.DataBindings.Add("SelectedItem", basicSection, "Win");
            loseComboBox.DataBindings.Add("SelectedItem", basicSection, "Lose");

            switch (plugin.GameType)
            {
                case GameType.TiberianDawn:
                    buidLevelNud.DataBindings.Add("Value", basicSection, "BuildLevel");
                    baseLabel.Visible = baseComboBox.Visible = false;
                    win2Label.Visible = win2ComboBox.Visible = false;
                    win3Label.Visible = win3ComboBox.Visible = false;
                    win4Label.Visible = win4ComboBox.Visible = false;
                    break;
                case GameType.RedAlert:
                    buidLevelNud.Visible = buildLevelLabel.Visible = false;
                    baseComboBox.DataBindings.Add("SelectedItem", basicSection, "BasePlayer");
                    win2ComboBox.DataBindings.Add("SelectedItem", basicSection, "Win2");
                    win3ComboBox.DataBindings.Add("SelectedItem", basicSection, "Win3");
                    win4ComboBox.DataBindings.Add("SelectedItem", basicSection, "Win4");
                    break;
            }

            introComboBox.Enabled = briefComboBox.Enabled = actionComboBox.Enabled = loseComboBox.Enabled = isSinglePlayerCheckBox.Checked;
            winComboBox.Enabled = win2ComboBox.Enabled = win3ComboBox.Enabled = win4ComboBox.Enabled = isSinglePlayerCheckBox.Checked;
        }

        private void isSinglePlayerCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            introComboBox.Enabled = briefComboBox.Enabled = actionComboBox.Enabled = loseComboBox.Enabled = isSinglePlayerCheckBox.Checked;
            winComboBox.Enabled = win2ComboBox.Enabled = win3ComboBox.Enabled = win4ComboBox.Enabled = isSinglePlayerCheckBox.Checked;
        }
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/BasicSettings.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: CnCTDRAMapEditor/Controls/BriefingSettings.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class BriefingSettings
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.briefingTxt = new System.Windows.Forms.TextBox();
            this.SuspendLayout();
            // 
            // briefingTxt
            // 
            this.briefingTxt.Dock = System.Windows.Forms.DockStyle.Fill;
            this.briefingTxt.Location = new System.Drawing.Point(0, 0);
            this.briefingTxt.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
            this.briefingTxt.Multiline = true;
            this.briefingTxt.Name = "briefingTxt";
            this.briefingTxt.Size = new System.Drawing.Size(600, 400);
            this.briefingTxt.TabIndex = 0;
            // 
            // BriefingSettings
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.briefingTxt);
            this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
            this.Name = "BriefingSettings";
            this.Size = new System.Drawing.Size(600, 400);
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.TextBox briefingTxt;
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/BriefingSettings.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
using MobiusEditor.Interface;
using System.Windows.Forms;

namespace MobiusEditor.Controls
{
    public partial class BriefingSettings : UserControl
    {
        public BriefingSettings(IGamePlugin plugin, dynamic briefingSection)
        {
            InitializeComponent();

            briefingTxt.DataBindings.Add("Text", briefingSection, "Briefing");
        }
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/BriefingSettings.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: CnCTDRAMapEditor/Controls/ImageTooltip.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class ImageTooltip
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
        }

        #endregion
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/ImageTooltip.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
using System;
using System.Drawing;
using System.Windows.Forms;

namespace MobiusEditor.Controls
{
    public partial class ImageTooltip : ToolTip
    {
        public Size MaxSize { get; set; } = Size.Empty;

        public ImageTooltip()
        {
            InitializeComponent();

            OwnerDraw = true;
            Popup += ImageTooltip_Popup;
            Draw += ImageTooltip_Draw;
        }

        private void ImageTooltip_Popup(object sender, PopupEventArgs e)
        {
            if (e.AssociatedControl.Tag is Image image)
            {
                var size = image.Size;
                if (MaxSize.Width > 0)
                {
                    size.Width = Math.Min(MaxSize.Width, size.Width);
                }
                if (MaxSize.Height > 0)
                {
                    size.Height = Math.Min(MaxSize.Height, size.Height);
                }

                e.ToolTipSize = size;
            }
            else
            {
                e.Cancel = true;
            }
        }

        private void ImageTooltip_Draw(object sender, DrawToolTipEventArgs e)
        {
            if (e.AssociatedControl.Tag is Image image)
            {
                e.Graphics.DrawImage(image, e.Bounds);
            }
        }
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/MapPanel.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class MapPanel
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.SuspendLayout();
            this.ResumeLayout(false);

        }

        #endregion
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/MapPanel.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
using MobiusEditor.Event;
using MobiusEditor.Interface;
using MobiusEditor.Model;
using MobiusEditor.Utility;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace MobiusEditor.Controls
{
    public partial class MapPanel : Panel
    {
        private bool updatingCamera;
        private Rectangle cameraBounds;
        private Point lastScrollPosition;

        private (Point map, SizeF client)? referencePositions;

        private Matrix mapToViewTransform = new Matrix();
        private Matrix viewToPageTransform = new Matrix();

        private Matrix compositeTransform = new Matrix();
        private Matrix invCompositeTransform = new Matrix();

        private readonly HashSet<Point> invalidateCells = new HashSet<Point>();
        private bool fullInvalidation;

        private Image mapImage;
        public Image MapImage
        {
            get => mapImage;
            set
            {
                if (mapImage != value)
                {
                    mapImage = value;
                    UpdateCamera();
                }
            }
        }

        private int minZoom = 1;
        public int MinZoom
        {
            get => minZoom;
            set
            {
                if (minZoom != value)
                {
                    minZoom = value;
                    Zoom = zoom;
                }
            }
        }

        private int maxZoom = 8;
        public int MaxZoom
        {
            get => maxZoom;
            set
            {
                if (maxZoom != value)
                {
                    maxZoom = value;
                    Zoom = zoom;
                }
            }
        }

        private int zoomStep = 1;
        public int ZoomStep
        {
            get => zoomStep;
            set
            {
                if (zoomStep != value)
                {
                    zoomStep = value;
                    Zoom = (Zoom / zoomStep) * zoomStep;
                }
            }
        }

        private int zoom = 1;
        public int Zoom
        {
            get => zoom;
            set
            {
                var newZoom = Math.Max(MinZoom, Math.Min(MaxZoom, value));
                if (zoom != newZoom)
                {
                    zoom = newZoom;

                    var clientPosition = PointToClient(MousePosition);
                    referencePositions = (ClientToMap(clientPosition), new SizeF(clientPosition.X / (float)ClientSize.Width, clientPosition.Y / (float)ClientSize.Height));

                    UpdateCamera();
                }
            }
        }

        private int quality = Properties.Settings.Default.Quality;
        public int Quality
        {
            get => quality;
            set
            {
                if (quality != value)
                {
                    quality = value;
                    Invalidate();
                }
            }
        }

        [Category("Behavior")]
        [DefaultValue(false)]
        public bool FocusOnMouseEnter { get; set; }

        public event EventHandler<RenderEventArgs> PreRender;
        public event EventHandler<RenderEventArgs> PostRender;

        public MapPanel()
        {
            InitializeComponent();
            DoubleBuffered = true;
        }

        public Point MapToClient(Point point)
        {
            var points = new Point[] { point };
            compositeTransform.TransformPoints(points);
            return points[0];
        }

        public Size MapToClient(Size size)
        {
            var points = new Point[] { (Point)size };
            compositeTransform.VectorTransformPoints(points);
            return (Size)points[0];
        }

        public Rectangle MapToClient(Rectangle rectangle)
        {
            var points = new Point[] { rectangle.Location, new Point(rectangle.Right, rectangle.Bottom) };
            compositeTransform.TransformPoints(points);
            return new Rectangle(points[0], new Size(points[1].X - points[0].X, points[1].Y - points[0].Y));
        }

        public Point ClientToMap(Point point)
        {
            var points = new Point[] { point };
            invCompositeTransform.TransformPoints(points);
            return points[0];
        }

        public Size ClientToMap(Size size)
        {
            var points = new Point[] { (Point)size };
            invCompositeTransform.VectorTransformPoints(points);
            return (Size)points[0];
        }

        public Rectangle ClientToMap(Rectangle rectangle)
        {
            var points = new Point[] { rectangle.Location, new Point(rectangle.Right, rectangle.Bottom) };
            invCompositeTransform.TransformPoints(points);
            return new Rectangle(points[0], new Size(points[1].X - points[0].X, points[1].Y - points[0].Y));
        }

        public void Invalidate(Map invalidateMap)
        {
            if (!fullInvalidation)
            {
                invalidateCells.Clear();
                fullInvalidation = true;
                Invalidate();
            }
        }

        public void Invalidate(Map invalidateMap, Rectangle cellBounds)
        {
            if (fullInvalidation)
            {
                return;
            }

            var count = invalidateCells.Count;
            invalidateCells.UnionWith(cellBounds.Points());
            if (invalidateCells.Count > count)
            {
                var overlapCells = invalidateMap.Overlappers.Overlaps(invalidateCells).ToHashSet();
                invalidateCells.UnionWith(overlapCells);
                Invalidate();
            }
        }

        public void Invalidate(Map invalidateMap, IEnumerable<Rectangle> cellBounds)
        {
            if (fullInvalidation)
            {
                return;
            }

            var count = invalidateCells.Count;
            invalidateCells.UnionWith(cellBounds.SelectMany(c => c.Points()));
            if (invalidateCells.Count > count)
            {
                var overlapCells = invalidateMap.Overlappers.Overlaps(invalidateCells).ToHashSet();
                invalidateCells.UnionWith(overlapCells);
                Invalidate();
            }
        }

        public void Invalidate(Map invalidateMap, Point location)
        {
            if (fullInvalidation)
            {
                return;
            }

            Invalidate(invalidateMap, new Rectangle(location, new Size(1, 1)));
        }

        public void Invalidate(Map invalidateMap, IEnumerable<Point> locations)
        {
            if (fullInvalidation)
            {
                return;
            }

            Invalidate(invalidateMap, locations.Select(l => new Rectangle(l, new Size(1, 1))));
        }

        public void Invalidate(Map invalidateMap, int cell)
        {
            if (fullInvalidation)
            {
                return;
            }

            if (invalidateMap.Metrics.GetLocation(cell, out Point location))
            {
                Invalidate(invalidateMap, location);
            }
        }

        public void Invalidate(Map invalidateMap, IEnumerable<int> cells)
        {
            if (fullInvalidation)
            {
                return;
            }

            Invalidate(invalidateMap, cells
                .Where(c => invalidateMap.Metrics.GetLocation(c, out Point location))
                .Select(c =>
                {
                    invalidateMap.Metrics.GetLocation(c, out Point location);
                    return location;
                })
            );
        }

        public void Invalidate(Map invalidateMap, ICellOverlapper overlapper)
        {
            if (fullInvalidation)
            {
                return;
            }

            var rectangle = invalidateMap.Overlappers[overlapper];
            if (rectangle.HasValue)
            {
                Invalidate(invalidateMap, rectangle.Value);
            }
        }

        protected override void OnMouseEnter(EventArgs e)
        {
            base.OnMouseEnter(e);

            if (FocusOnMouseEnter)
            {
                Focus();
            }
        }

        protected override void OnMouseWheel(MouseEventArgs e)
        {
            Zoom += ZoomStep * Math.Sign(e.Delta);
        }

        protected override void OnClientSizeChanged(EventArgs e)
        {
            base.OnClientSizeChanged(e);

            UpdateCamera();
        }

        protected override void OnScroll(ScrollEventArgs se)
        {
            base.OnScroll(se);

            InvalidateScroll();
        }

        protected override void OnPaintBackground(PaintEventArgs e)
        {
            base.OnPaintBackground(e);

            e.Graphics.Clear(BackColor);
        }

        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);

            InvalidateScroll();

            PreRender?.Invoke(this, new RenderEventArgs(pe.Graphics, fullInvalidation ? null : invalidateCells));

            if (mapImage != null)
            {
                pe.Graphics.Transform = compositeTransform;

                var oldCompositingMode = pe.Graphics.CompositingMode;
                var oldCompositingQuality = pe.Graphics.CompositingQuality;
                var oldInterpolationMode = pe.Graphics.InterpolationMode;
                if (Quality > 1)
                {
                    pe.Graphics.CompositingMode = CompositingMode.SourceCopy;
                    pe.Graphics.CompositingQuality = CompositingQuality.HighSpeed;
                }

                pe.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
                pe.Graphics.DrawImage(mapImage, 0, 0);

                pe.Graphics.CompositingMode = oldCompositingMode;
                pe.Graphics.CompositingQuality = oldCompositingQuality;
                pe.Graphics.InterpolationMode = oldInterpolationMode;
            }

            PostRender?.Invoke(this, new RenderEventArgs(pe.Graphics, fullInvalidation ? null : invalidateCells));

#if DEVELOPER
            if (Globals.Developer.ShowOverlapCells)
            {
                var invalidPen = new Pen(Color.DarkRed);
                foreach (var cell in invalidateCells)
                {
                    pe.Graphics.DrawRectangle(invalidPen, new Rectangle(cell.X * Globals.TileWidth, cell.Y * Globals.TileHeight, Globals.TileWidth, Globals.TileHeight));
                }
            }
#endif

            invalidateCells.Clear();
            fullInvalidation = false;
        }

        private void UpdateCamera()
        {
            if (mapImage == null)
            {
                return;
            }

            if (ClientSize.IsEmpty)
            {
                return;
            }

            updatingCamera = true;

            var mapAspect = (double)mapImage.Width / mapImage.Height;
            var panelAspect = (double)ClientSize.Width / ClientSize.Height;
            var cameraLocation = cameraBounds.Location;

            var size = Size.Empty;
            if (panelAspect > mapAspect)
            {
                size.Height = mapImage.Height / zoom;
                size.Width = (int)(size.Height * panelAspect);
            }
            else
            {
                size.Width = mapImage.Width / zoom;
                size.Height = (int)(size.Width / panelAspect);
            }

            var location = Point.Empty;
            var scrollSize = Size.Empty;
            if (size.Width < mapImage.Width)
            {
                location.X = Math.Max(0, Math.Min(mapImage.Width - size.Width, cameraBounds.Left));
                scrollSize.Width = mapImage.Width * ClientSize.Width / size.Width;
            }
            else
            {
                location.X = (mapImage.Width - size.Width) / 2;
            }

            if (size.Height < mapImage.Height)
            {
                location.Y = Math.Max(0, Math.Min(mapImage.Height - size.Height, cameraBounds.Top));
                scrollSize.Height = mapImage.Height * ClientSize.Height / size.Height;
            }
            else
            {
                location.Y = (mapImage.Height - size.Height) / 2;
            }

            cameraBounds = new Rectangle(location, size);
            RecalculateTransforms();

            if (referencePositions.HasValue)
            {
                var mapPoint = referencePositions.Value.map;
                var clientSize = referencePositions.Value.client;

                cameraLocation = cameraBounds.Location;
                if (scrollSize.Width != 0)
                {
                    cameraLocation.X = Math.Max(0, Math.Min(mapImage.Width - cameraBounds.Width, (int)(mapPoint.X - (cameraBounds.Width * clientSize.Width))));
                }
                if (scrollSize.Height != 0)
                {
                    cameraLocation.Y = Math.Max(0, Math.Min(mapImage.Height - cameraBounds.Height, (int)(mapPoint.Y - (cameraBounds.Height * clientSize.Height))));
                }
                if (!scrollSize.IsEmpty)
                {
                    cameraBounds.Location = cameraLocation;
                    RecalculateTransforms();
                }

                referencePositions = null;
            }

            SuspendDrawing();
            AutoScrollMinSize = scrollSize;
            AutoScrollPosition = (Point)MapToClient((Size)cameraBounds.Location);
            lastScrollPosition = AutoScrollPosition;
            ResumeDrawing();

            updatingCamera = false;

            Invalidate();
        }

        private void RecalculateTransforms()
        {
            mapToViewTransform.Reset();
            mapToViewTransform.Translate(cameraBounds.Left, cameraBounds.Top);
            mapToViewTransform.Scale(cameraBounds.Width, cameraBounds.Height);
            mapToViewTransform.Invert();

            viewToPageTransform.Reset();
            viewToPageTransform.Scale(ClientSize.Width, ClientSize.Height);

            compositeTransform.Reset();
            compositeTransform.Multiply(viewToPageTransform);
            compositeTransform.Multiply(mapToViewTransform);

            invCompositeTransform.Reset();
            invCompositeTransform.Multiply(compositeTransform);
            invCompositeTransform.Invert();
        }

        private void InvalidateScroll()
        {
            if (updatingCamera)
            {
                return;
            }

            if ((lastScrollPosition.X != AutoScrollPosition.X) || (lastScrollPosition.Y != AutoScrollPosition.Y))
            {
                var delta = ClientToMap((Size)(lastScrollPosition - (Size)AutoScrollPosition));
                lastScrollPosition = AutoScrollPosition;

                var cameraLocation = cameraBounds.Location;
                if (AutoScrollMinSize.Width != 0)
                {
                    cameraLocation.X = Math.Max(0, Math.Min(mapImage.Width - cameraBounds.Width, cameraBounds.Left + delta.Width));
                }
                if (AutoScrollMinSize.Height != 0)
                {
                    cameraLocation.Y = Math.Max(0, Math.Min(mapImage.Height - cameraBounds.Height, cameraBounds.Top + delta.Height));
                }
                if (!AutoScrollMinSize.IsEmpty)
                {
                    cameraBounds.Location = cameraLocation;
                    RecalculateTransforms();
                }

                Invalidate();
            }
        }

        [DllImport("user32.dll")]
        private static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);

        private const int WM_SETREDRAW = 11;

        private void SuspendDrawing()
        {
            SendMessage(Handle, WM_SETREDRAW, false, 0);
        }

        private void ResumeDrawing()
        {
            SendMessage(Handle, WM_SETREDRAW, true, 0);
        }
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/MapPanel.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>False</value>
  </metadata>
</root>

================================================
FILE: CnCTDRAMapEditor/Controls/MenuButton.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class MenuButton
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
        }

        #endregion
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/MenuButton.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace MobiusEditor.Controls
{
    public partial class MenuButton : Button
    {
        public const int DefaultSplitWidth = 20;

        [DefaultValue(null), Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public ContextMenuStrip Menu { get; set; }

        [DefaultValue(DefaultSplitWidth), Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public int SplitWidth { get; set; } = DefaultSplitWidth;

        public MenuButton()
        {
            InitializeComponent();
        }

        protected override void OnMouseDown(MouseEventArgs mevent)
        {
            var splitRect = new Rectangle(Width - SplitWidth, 0, SplitWidth, Height);

            if ((Menu != null) && (mevent.Button == MouseButtons.Left) && splitRect.Contains(mevent.Location))
            {
                Menu.Show(this, 0, Height);
            }
            else
            {
                base.OnMouseDown(mevent);
            }
        }

        protected override void OnPaint(PaintEventArgs pevent)
        {
            base.OnPaint(pevent);

            if ((Menu != null) && (SplitWidth > 0))
            {
                int arrowX = ClientRectangle.Width - 14;
                int arrowY = ClientRectangle.Height / 2 - 1;

                var arrowBrush = Enabled ? SystemBrushes.ControlText : SystemBrushes.ButtonShadow;
                var arrows = new[] { new Point(arrowX, arrowY), new Point(arrowX + 7, arrowY), new Point(arrowX + 3, arrowY + 4) };
                pevent.Graphics.FillPolygon(arrowBrush, arrows);

                int lineX = ClientRectangle.Width - SplitWidth;
                int lineYFrom = arrowY - 4;
                int lineYTo = arrowY + 8;
                using (var separatorPen = new Pen(Brushes.DarkGray) { DashStyle = DashStyle.Dot })
                {
                    pevent.Graphics.DrawLine(separatorPen, lineX, lineYFrom, lineX, lineYTo);
                }
            }
        }
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/ObjectProperties.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class ObjectProperties
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
            this.label1 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.directionLabel = new System.Windows.Forms.Label();
            this.missionLabel = new System.Windows.Forms.Label();
            this.label5 = new System.Windows.Forms.Label();
            this.houseComboBox = new MobiusEditor.Controls.PropertiesComboBox();
            this.strengthNud = new System.Windows.Forms.NumericUpDown();
            this.directionComboBox = new MobiusEditor.Controls.PropertiesComboBox();
            this.missionComboBox = new MobiusEditor.Controls.PropertiesComboBox();
            this.triggerComboBox = new MobiusEditor.Controls.PropertiesComboBox();
            this.basePriorityNud = new System.Windows.Forms.NumericUpDown();
            this.prebuiltCheckBox = new System.Windows.Forms.CheckBox();
            this.basePriorityLabel = new System.Windows.Forms.Label();
            this.sellableCheckBox = new System.Windows.Forms.CheckBox();
            this.rebuildCheckBox = new System.Windows.Forms.CheckBox();
            this.tableLayoutPanel1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.strengthNud)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.basePriorityNud)).BeginInit();
            this.SuspendLayout();
            // 
            // tableLayoutPanel1
            // 
            this.tableLayoutPanel1.ColumnCount = 2;
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 31.25F));
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 68.75F));
            this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
            this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1);
            this.tableLayoutPanel1.Controls.Add(this.directionLabel, 0, 2);
            this.tableLayoutPanel1.Controls.Add(this.missionLabel, 0, 3);
            this.tableLayoutPanel1.Controls.Add(this.label5, 0, 4);
            this.tableLayoutPanel1.Controls.Add(this.houseComboBox, 1, 0);
            this.tableLayoutPanel1.Controls.Add(this.strengthNud, 1, 1);
            this.tableLayoutPanel1.Controls.Add(this.directionComboBox, 1, 2);
            this.tableLayoutPanel1.Controls.Add(this.missionComboBox, 1, 3);
            this.tableLayoutPanel1.Controls.Add(this.triggerComboBox, 1, 4);
            this.tableLayoutPanel1.Controls.Add(this.basePriorityNud, 1, 5);
            this.tableLayoutPanel1.Controls.Add(this.prebuiltCheckBox, 1, 7);
            this.tableLayoutPanel1.Controls.Add(this.basePriorityLabel, 0, 5);
            this.tableLayoutPanel1.Controls.Add(this.sellableCheckBox, 1, 8);
            this.tableLayoutPanel1.Controls.Add(this.rebuildCheckBox, 1, 9);
            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
            this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4);
            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
            this.tableLayoutPanel1.RowCount = 11;
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
            this.tableLayoutPanel1.Size = new System.Drawing.Size(299, 262);
            this.tableLayoutPanel1.TabIndex = 0;
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label1.Location = new System.Drawing.Point(4, 0);
            this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(85, 32);
            this.label1.TabIndex = 0;
            this.label1.Text = "House";
            this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label2.Location = new System.Drawing.Point(4, 32);
            this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(85, 30);
            this.label2.TabIndex = 1;
            this.label2.Text = "Strength";
            this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // directionLabel
            // 
            this.directionLabel.AutoSize = true;
            this.directionLabel.Dock = System.Windows.Forms.DockStyle.Fill;
            this.directionLabel.Location = new System.Drawing.Point(4, 62);
            this.directionLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
            this.directionLabel.Name = "directionLabel";
            this.directionLabel.Size = new System.Drawing.Size(85, 32);
            this.directionLabel.TabIndex = 2;
            this.directionLabel.Text = "Direction";
            this.directionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // missionLabel
            // 
            this.missionLabel.AutoSize = true;
            this.missionLabel.Dock = System.Windows.Forms.DockStyle.Fill;
            this.missionLabel.Location = new System.Drawing.Point(4, 94);
            this.missionLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
            this.missionLabel.Name = "missionLabel";
            this.missionLabel.Size = new System.Drawing.Size(85, 32);
            this.missionLabel.TabIndex = 3;
            this.missionLabel.Text = "Mission";
            this.missionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label5
            // 
            this.label5.AutoSize = true;
            this.label5.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label5.Location = new System.Drawing.Point(4, 126);
            this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(85, 32);
            this.label5.TabIndex = 4;
            this.label5.Text = "Trigger";
            this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // houseComboBox
            // 
            this.houseComboBox.DisplayMember = "Name";
            this.houseComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.houseComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.houseComboBox.FormattingEnabled = true;
            this.houseComboBox.Location = new System.Drawing.Point(97, 4);
            this.houseComboBox.Margin = new System.Windows.Forms.Padding(4);
            this.houseComboBox.Name = "houseComboBox";
            this.houseComboBox.Size = new System.Drawing.Size(198, 24);
            this.houseComboBox.TabIndex = 5;
            this.houseComboBox.ValueMember = "Type";
            this.houseComboBox.SelectedIndexChanged += new System.EventHandler(this.comboBox_SelectedValueChanged);
            // 
            // strengthNud
            // 
            this.strengthNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.strengthNud.Location = new System.Drawing.Point(97, 36);
            this.strengthNud.Margin = new System.Windows.Forms.Padding(4);
            this.strengthNud.Maximum = new decimal(new int[] {
            256,
            0,
            0,
            0});
            this.strengthNud.Minimum = new decimal(new int[] {
            1,
            0,
            0,
            0});
            this.strengthNud.Name = "strengthNud";
            this.strengthNud.Size = new System.Drawing.Size(198, 22);
            this.strengthNud.TabIndex = 6;
            this.strengthNud.Value = new decimal(new int[] {
            256,
            0,
            0,
            0});
            this.strengthNud.ValueChanged += new System.EventHandler(this.nud_ValueChanged);
            // 
            // directionComboBox
            // 
            this.directionComboBox.DisplayMember = "Name";
            this.directionComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.directionComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.directionComboBox.FormattingEnabled = true;
            this.directionComboBox.Location = new System.Drawing.Point(97, 66);
            this.directionComboBox.Margin = new System.Windows.Forms.Padding(4);
            this.directionComboBox.Name = "directionComboBox";
            this.directionComboBox.Size = new System.Drawing.Size(198, 24);
            this.directionComboBox.TabIndex = 7;
            this.directionComboBox.ValueMember = "Type";
            this.directionComboBox.SelectedIndexChanged += new System.EventHandler(this.comboBox_SelectedValueChanged);
            // 
            // missionComboBox
            // 
            this.missionComboBox.DisplayMember = "Name";
            this.missionComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.missionComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.missionComboBox.FormattingEnabled = true;
            this.missionComboBox.Location = new System.Drawing.Point(97, 98);
            this.missionComboBox.Margin = new System.Windows.Forms.Padding(4);
            this.missionComboBox.Name = "missionComboBox";
            this.missionComboBox.Size = new System.Drawing.Size(198, 24);
            this.missionComboBox.TabIndex = 8;
            this.missionComboBox.ValueMember = "Type";
            this.missionComboBox.SelectedIndexChanged += new System.EventHandler(this.comboBox_SelectedValueChanged);
            // 
            // triggerComboBox
            // 
            this.triggerComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.triggerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.triggerComboBox.FormattingEnabled = true;
            this.triggerComboBox.Location = new System.Drawing.Point(97, 130);
            this.triggerComboBox.Margin = new System.Windows.Forms.Padding(4);
            this.triggerComboBox.Name = "triggerComboBox";
            this.triggerComboBox.Size = new System.Drawing.Size(198, 24);
            this.triggerComboBox.TabIndex = 9;
            this.triggerComboBox.SelectedIndexChanged += new System.EventHandler(this.comboBox_SelectedValueChanged);
            // 
            // basePriorityNud
            // 
            this.basePriorityNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.basePriorityNud.Location = new System.Drawing.Point(96, 160);
            this.basePriorityNud.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
            this.basePriorityNud.Maximum = new decimal(new int[] {
            2147483647,
            0,
            0,
            0});
            this.basePriorityNud.Minimum = new decimal(new int[] {
            1,
            0,
            0,
            -2147483648});
            this.basePriorityNud.Name = "basePriorityNud";
            this.basePriorityNud.Size = new System.Drawing.Size(200, 22);
            this.basePriorityNud.TabIndex = 11;
            this.basePriorityNud.ValueChanged += new System.EventHandler(this.nud_ValueChanged);
            // 
            // prebuiltCheckBox
            // 
            this.prebuiltCheckBox.AutoSize = true;
            this.prebuiltCheckBox.Location = new System.Drawing.Point(96, 186);
            this.prebuiltCheckBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
            this.prebuiltCheckBox.Name = "prebuiltCheckBox";
            this.prebuiltCheckBox.Size = new System.Drawing.Size(78, 21);
            this.prebuiltCheckBox.TabIndex = 12;
            this.prebuiltCheckBox.Text = "Prebuilt";
            this.prebuiltCheckBox.UseVisualStyleBackColor = true;
            this.prebuiltCheckBox.CheckedChanged += new System.EventHandler(this.checkBox_CheckedChanged);
            // 
            // basePriorityLabel
            // 
            this.basePriorityLabel.Dock = System.Windows.Forms.DockStyle.Fill;
            this.basePriorityLabel.Location = new System.Drawing.Point(3, 158);
            this.basePriorityLabel.Name = "basePriorityLabel";
            this.basePriorityLabel.Size = new System.Drawing.Size(87, 26);
            this.basePriorityLabel.TabIndex = 13;
            this.basePriorityLabel.Text = "Base Priority";
            this.basePriorityLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // sellableCheckBox
            // 
            this.sellableCheckBox.AutoSize = true;
            this.sellableCheckBox.Location = new System.Drawing.Point(96, 211);
            this.sellableCheckBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
            this.sellableCheckBox.Name = "sellableCheckBox";
            this.sellableCheckBox.Size = new System.Drawing.Size(80, 21);
            this.sellableCheckBox.TabIndex = 14;
            this.sellableCheckBox.Text = "Sellable";
            this.sellableCheckBox.UseVisualStyleBackColor = true;
            this.sellableCheckBox.CheckedChanged += new System.EventHandler(this.checkBox_CheckedChanged);
            // 
            // rebuildCheckBox
            // 
            this.rebuildCheckBox.AutoSize = true;
            this.rebuildCheckBox.Location = new System.Drawing.Point(96, 236);
            this.rebuildCheckBox.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
            this.rebuildCheckBox.Name = "rebuildCheckBox";
            this.rebuildCheckBox.Size = new System.Drawing.Size(78, 21);
            this.rebuildCheckBox.TabIndex = 15;
            this.rebuildCheckBox.Text = "Rebuild";
            this.rebuildCheckBox.UseVisualStyleBackColor = true;
            this.rebuildCheckBox.CheckedChanged += new System.EventHandler(this.checkBox_CheckedChanged);
            // 
            // ObjectProperties
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.tableLayoutPanel1);
            this.Margin = new System.Windows.Forms.Padding(4);
            this.Name = "ObjectProperties";
            this.Size = new System.Drawing.Size(299, 262);
            this.tableLayoutPanel1.ResumeLayout(false);
            this.tableLayoutPanel1.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)(this.strengthNud)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.basePriorityNud)).EndInit();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label directionLabel;
        private System.Windows.Forms.Label missionLabel;
        private System.Windows.Forms.Label label5;
        private MobiusEditor.Controls.PropertiesComboBox houseComboBox;
        private System.Windows.Forms.NumericUpDown strengthNud;
        private MobiusEditor.Controls.PropertiesComboBox directionComboBox;
        private MobiusEditor.Controls.PropertiesComboBox missionComboBox;
        private MobiusEditor.Controls.PropertiesComboBox triggerComboBox;
        private System.Windows.Forms.NumericUpDown basePriorityNud;
        private System.Windows.Forms.CheckBox prebuiltCheckBox;
        private System.Windows.Forms.Label basePriorityLabel;
        private System.Windows.Forms.CheckBox sellableCheckBox;
        private System.Windows.Forms.CheckBox rebuildCheckBox;
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/ObjectProperties.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
using MobiusEditor.Interface;
using MobiusEditor.Model;
using MobiusEditor.Utility;
using System;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Windows.Forms;

namespace MobiusEditor.Controls
{
    public partial class ObjectProperties : UserControl
    {
        private bool isMockObject;

        public IGamePlugin Plugin { get; private set; }

        private INotifyPropertyChanged obj;
        public INotifyPropertyChanged Object
        {
            get => obj;
            set
            {
                if (obj != value)
                {
                    if (obj != null)
                    {
                        obj.PropertyChanged -= Obj_PropertyChanged;
                    }

                    obj = value;

                    if (obj != null)
                    {
                        obj.PropertyChanged += Obj_PropertyChanged;
                    }

                    Rebind();
                }
            }
        }

        public ObjectProperties()
        {
            InitializeComponent();
        }

        public void Initialize(IGamePlugin plugin, bool isMockObject)
        {
            this.isMockObject = isMockObject;

            Plugin = plugin;
            plugin.Map.Triggers.CollectionChanged += Triggers_CollectionChanged;

            houseComboBox.DataSource = plugin.Map.Houses.Select(t => new TypeItem<HouseType>(t.Type.Name, t.Type)).ToArray();
            missionComboBox.DataSource = plugin.Map.MissionTypes;

            UpdateDataSource();

            Disposed += (sender, e) =>
            {
                Object = null;
                plugin.Map.Triggers.CollectionChanged -= Triggers_CollectionChanged;
            };
        }

        private void Triggers_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            UpdateDataSource();
        }

        private void UpdateDataSource()
        {
            triggerComboBox.DataSource = Trigger.None.Yield().Concat(Plugin.Map.Triggers.Select(t => t.Name).Distinct()).ToArray();
        }

        private void Rebind()
        {
            houseComboBox.DataBindings.Clear();
            strengthNud.DataBindings.Clear();
            directionComboBox.DataBindings.Clear();
            missionComboBox.DataBindings.Clear();
            triggerComboBox.DataBindings.Clear();
            basePriorityNud.DataBindings.Clear();
            prebuiltCheckBox.DataBindings.Clear();
            sellableCheckBox.DataBindings.Clear();
            rebuildCheckBox.DataBindings.Clear();

            if (obj == null)
            {
                return;
            }

            switch (obj)
            {
                case Infantry infantry:
                    {
                        houseComboBox.Enabled = true;
                        directionComboBox.DataSource = Plugin.Map.DirectionTypes
                            .Where(t => t.Facing != FacingType.None)
                            .Select(t => new TypeItem<DirectionType>(t.Name, t)).ToArray();

                        missionComboBox.DataBindings.Add("SelectedItem", obj, "Mission");
                        missionLabel.Visible = missionComboBox.Visible = true;
                        basePriorityLabel.Visible = basePriorityNud.Visible = false;
                        prebuiltCheckBox.Visible = false;
                        sellableCheckBox.Visible = false;
                        rebuildCheckBox.Visible = false;
                    }
                    break;
                case Unit unit:
                    {
                        houseComboBox.Enabled = true;
                        directionComboBox.DataSource = Plugin.Map.DirectionTypes.Select(t => new TypeItem<DirectionType>(t.Name, t)).ToArray();
                        missionComboBox.DataBindings.Add("SelectedItem", obj, "Mission");
                        missionLabel.Visible = missionComboBox.Visible = true;
                        basePriorityLabel.Visible = basePriorityNud.Visible = false;
                        prebuiltCheckBox.Visible = false;
                        sellableCheckBox.Visible = false;
                        rebuildCheckBox.Visible = false;
                    }
                    break;
                case Building building:
                    {
                        houseComboBox.Enabled = building.IsPrebuilt;
                        directionComboBox.DataSource = Plugin.Map.DirectionTypes.Select(t => new TypeItem<DirectionType>(t.Name, t)).ToArray();
                        directionComboBox.Visible = (building.Type != null) && building.Type.HasTurret;
                        missionLabel.Visible = missionComboBox.Visible = false;
                        basePriorityLabel.Visible = basePriorityNud.Visible = true;
                        prebuiltCheckBox.Visible = true;
                        prebuiltCheckBox.Enabled = building.BasePriority >= 0;

                        basePriorityNud.DataBindings.Add("Value", obj, "BasePriority");
                        prebuiltCheckBox.DataBindings.Add("Checked", obj, "IsPrebuilt");

                        switch (Plugin.GameType)
                        {
                            case GameType.TiberianDawn:
                                {
                                    sellableCheckBox.Visible = false;
                                    rebuildCheckBox.Visible = false;
                                } break;
                            case GameType.RedAlert:
                                {
                                    sellableCheckBox.DataBindings.Add("Checked", obj, "Sellable");
                                    rebuildCheckBox.DataBindings.Add("Checked", obj, "Rebuild");
                                    sellableCheckBox.Visible = true;
                                    rebuildCheckBox.Visible = true;
                                } break;
                        }
                    }
                    break;
            }

            houseComboBox.DataBindings.Add("SelectedValue", obj, "House");
            strengthNud.DataBindings.Add("Value", obj, "Strength");
            directionComboBox.DataBindings.Add("SelectedValue", obj, "Direction");
            triggerComboBox.DataBindings.Add("SelectedItem", obj, "Trigger");
        }

        private void Obj_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            switch (e.PropertyName)
            {
                case "Type":
                    {
                        Rebind();
                    }
                    break;
                case "BasePriority":
                    {
                        if (obj is Building building)
                        {
                            prebuiltCheckBox.Enabled = building.BasePriority >= 0;
                        }
                    }
                    break;
                case "IsPrebuilt":
                    {
                        if (obj is Building building)
                        {
                            if (!building.IsPrebuilt)
                            {
                                var basePlayer = Plugin.Map.HouseTypes.Where(h => h.Equals(Plugin.Map.BasicSection.BasePlayer)).FirstOrDefault() ?? Plugin.Map.HouseTypes.First();
                                building.House = basePlayer;
                            }
                            houseComboBox.Enabled = building.IsPrebuilt;
                        }
                    } break;
            }

            if (!isMockObject)
            {
                Plugin.Dirty = true;
            }
        }

        private void comboBox_SelectedValueChanged(object sender, EventArgs e)
        {
            foreach (Binding binding in (sender as ComboBox).DataBindings)
            {
                binding.WriteValue();
            }
        }

        private void nud_ValueChanged(object sender, EventArgs e)
        {
            foreach (Binding binding in (sender as NumericUpDown).DataBindings)
            {
                binding.WriteValue();
            }
        }

        private void checkBox_CheckedChanged(object sender, EventArgs e)
        {
            foreach (Binding binding in (sender as CheckBox).DataBindings)
            {
                binding.WriteValue();
            }
        }
    }

    public class ObjectPropertiesPopup : ToolStripDropDown
    {
        private readonly ToolStripControlHost host;

        public ObjectProperties ObjectProperties { get; private set; }

        public ObjectPropertiesPopup(IGamePlugin plugin, INotifyPropertyChanged obj)
        {
            ObjectProperties = new ObjectProperties();
            ObjectProperties.Initialize(plugin, false);
            ObjectProperties.Object = obj;

            host = new ToolStripControlHost(ObjectProperties);
            Padding = Margin = host.Padding = host.Margin = Padding.Empty;
            MinimumSize = ObjectProperties.MinimumSize;
            ObjectProperties.MinimumSize = ObjectProperties.Size;
            MaximumSize = ObjectProperties.MaximumSize;
            ObjectProperties.MaximumSize = ObjectProperties.Size;
            Size = ObjectProperties.Size;
            Items.Add(host);
            ObjectProperties.Disposed += (sender, e) =>
            {
                ObjectProperties = null;
                Dispose(true);
            };
        }

        protected override void OnClosed(ToolStripDropDownClosedEventArgs e)
        {
            base.OnClosed(e);

            ObjectProperties.Object = null;
        }
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/ObjectProperties.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: CnCTDRAMapEditor/Controls/PlayerSettings.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class PlayerSettings
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
            this.iqNud = new System.Windows.Forms.NumericUpDown();
            this.techLevelNud = new System.Windows.Forms.NumericUpDown();
            this.maxVesselsNud = new System.Windows.Forms.NumericUpDown();
            this.maxInfantryNud = new System.Windows.Forms.NumericUpDown();
            this.iqLbl = new System.Windows.Forms.Label();
            this.techLevelLbl = new System.Windows.Forms.Label();
            this.maxVesselsLbl = new System.Windows.Forms.Label();
            this.maxInfantryLbl = new System.Windows.Forms.Label();
            this.label1 = new System.Windows.Forms.Label();
            this.edgeComboBox = new System.Windows.Forms.ComboBox();
            this.label2 = new System.Windows.Forms.Label();
            this.creditsNud = new System.Windows.Forms.NumericUpDown();
            this.label3 = new System.Windows.Forms.Label();
            this.label4 = new System.Windows.Forms.Label();
            this.maxBuildingsNud = new System.Windows.Forms.NumericUpDown();
            this.maxUnitsNud = new System.Windows.Forms.NumericUpDown();
            this.label5 = new System.Windows.Forms.Label();
            this.playersListBox = new System.Windows.Forms.ListBox();
            this.playerControlLbl = new System.Windows.Forms.Label();
            this.playerControlCheckBox = new System.Windows.Forms.CheckBox();
            this.tableLayoutPanel1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.iqNud)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.techLevelNud)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.maxVesselsNud)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.maxInfantryNud)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.creditsNud)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.maxBuildingsNud)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.maxUnitsNud)).BeginInit();
            this.SuspendLayout();
            // 
            // tableLayoutPanel1
            // 
            this.tableLayoutPanel1.AutoSize = true;
            this.tableLayoutPanel1.ColumnCount = 2;
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
            this.tableLayoutPanel1.Controls.Add(this.playerControlLbl, 0, 8);
            this.tableLayoutPanel1.Controls.Add(this.iqNud, 1, 7);
            this.tableLayoutPanel1.Controls.Add(this.techLevelNud, 1, 6);
            this.tableLayoutPanel1.Controls.Add(this.maxVesselsNud, 1, 5);
            this.tableLayoutPanel1.Controls.Add(this.maxInfantryNud, 1, 4);
            this.tableLayoutPanel1.Controls.Add(this.iqLbl, 0, 7);
            this.tableLayoutPanel1.Controls.Add(this.techLevelLbl, 0, 6);
            this.tableLayoutPanel1.Controls.Add(this.maxVesselsLbl, 0, 5);
            this.tableLayoutPanel1.Controls.Add(this.maxInfantryLbl, 0, 4);
            this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
            this.tableLayoutPanel1.Controls.Add(this.edgeComboBox, 1, 0);
            this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1);
            this.tableLayoutPanel1.Controls.Add(this.creditsNud, 1, 1);
            this.tableLayoutPanel1.Controls.Add(this.label3, 0, 2);
            this.tableLayoutPanel1.Controls.Add(this.label4, 0, 3);
            this.tableLayoutPanel1.Controls.Add(this.maxBuildingsNud, 1, 2);
            this.tableLayoutPanel1.Controls.Add(this.maxUnitsNud, 1, 3);
            this.tableLayoutPanel1.Controls.Add(this.label5, 0, 9);
            this.tableLayoutPanel1.Controls.Add(this.playersListBox, 1, 9);
            this.tableLayoutPanel1.Controls.Add(this.playerControlCheckBox, 1, 8);
            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
            this.tableLayoutPanel1.RowCount = 10;
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.Size = new System.Drawing.Size(329, 372);
            this.tableLayoutPanel1.TabIndex = 2;
            // 
            // iqNud
            // 
            this.iqNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.iqNud.Location = new System.Drawing.Point(81, 186);
            this.iqNud.Maximum = new decimal(new int[] {
            2147483647,
            0,
            0,
            0});
            this.iqNud.Name = "iqNud";
            this.iqNud.Size = new System.Drawing.Size(245, 20);
            this.iqNud.TabIndex = 26;
            // 
            // techLevelNud
            // 
            this.techLevelNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.techLevelNud.Location = new System.Drawing.Point(81, 160);
            this.techLevelNud.Maximum = new decimal(new int[] {
            2147483647,
            0,
            0,
            0});
            this.techLevelNud.Name = "techLevelNud";
            this.techLevelNud.Size = new System.Drawing.Size(245, 20);
            this.techLevelNud.TabIndex = 25;
            // 
            // maxVesselsNud
            // 
            this.maxVesselsNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.maxVesselsNud.Location = new System.Drawing.Point(81, 134);
            this.maxVesselsNud.Maximum = new decimal(new int[] {
            2147483647,
            0,
            0,
            0});
            this.maxVesselsNud.Name = "maxVesselsNud";
            this.maxVesselsNud.Size = new System.Drawing.Size(245, 20);
            this.maxVesselsNud.TabIndex = 24;
            // 
            // maxInfantryNud
            // 
            this.maxInfantryNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.maxInfantryNud.Location = new System.Drawing.Point(81, 108);
            this.maxInfantryNud.Maximum = new decimal(new int[] {
            2147483647,
            0,
            0,
            0});
            this.maxInfantryNud.Name = "maxInfantryNud";
            this.maxInfantryNud.Size = new System.Drawing.Size(245, 20);
            this.maxInfantryNud.TabIndex = 23;
            // 
            // iqLbl
            // 
            this.iqLbl.AutoSize = true;
            this.iqLbl.Location = new System.Drawing.Point(3, 183);
            this.iqLbl.Name = "iqLbl";
            this.iqLbl.Size = new System.Drawing.Size(18, 13);
            this.iqLbl.TabIndex = 22;
            this.iqLbl.Text = "IQ";
            // 
            // techLevelLbl
            // 
            this.techLevelLbl.AutoSize = true;
            this.techLevelLbl.Location = new System.Drawing.Point(3, 157);
            this.techLevelLbl.Name = "techLevelLbl";
            this.techLevelLbl.Size = new System.Drawing.Size(61, 13);
            this.techLevelLbl.TabIndex = 21;
            this.techLevelLbl.Text = "Tech Level";
            // 
            // maxVesselsLbl
            // 
            this.maxVesselsLbl.AutoSize = true;
            this.maxVesselsLbl.Location = new System.Drawing.Point(3, 131);
            this.maxVesselsLbl.Name = "maxVesselsLbl";
            this.maxVesselsLbl.Size = new System.Drawing.Size(66, 13);
            this.maxVesselsLbl.TabIndex = 20;
            this.maxVesselsLbl.Text = "Max Vessels";
            // 
            // maxInfantryLbl
            // 
            this.maxInfantryLbl.AutoSize = true;
            this.maxInfantryLbl.Location = new System.Drawing.Point(3, 105);
            this.maxInfantryLbl.Name = "maxInfantryLbl";
            this.maxInfantryLbl.Size = new System.Drawing.Size(65, 13);
            this.maxInfantryLbl.TabIndex = 19;
            this.maxInfantryLbl.Text = "Max Infantry";
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(3, 0);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(32, 13);
            this.label1.TabIndex = 0;
            this.label1.Text = "Edge";
            // 
            // edgeComboBox
            // 
            this.edgeComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.edgeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.edgeComboBox.FormattingEnabled = true;
            this.edgeComboBox.Location = new System.Drawing.Point(81, 3);
            this.edgeComboBox.Name = "edgeComboBox";
            this.edgeComboBox.Size = new System.Drawing.Size(245, 21);
            this.edgeComboBox.TabIndex = 10;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(3, 27);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(39, 13);
            this.label2.TabIndex = 11;
            this.label2.Text = "Credits";
            // 
            // creditsNud
            // 
            this.creditsNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.creditsNud.Location = new System.Drawing.Point(81, 30);
            this.creditsNud.Maximum = new decimal(new int[] {
            2147483647,
            0,
            0,
            0});
            this.creditsNud.Name = "creditsNud";
            this.creditsNud.Size = new System.Drawing.Size(245, 20);
            this.creditsNud.TabIndex = 12;
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(3, 53);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(72, 13);
            this.label3.TabIndex = 13;
            this.label3.Text = "Max Buildings";
            // 
            // label4
            // 
            this.label4.AutoSize = true;
            this.label4.Location = new System.Drawing.Point(3, 79);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(54, 13);
            this.label4.TabIndex = 14;
            this.label4.Text = "Max Units";
            // 
            // maxBuildingsNud
            // 
            this.maxBuildingsNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.maxBuildingsNud.Location = new System.Drawing.Point(81, 56);
            this.maxBuildingsNud.Maximum = new decimal(new int[] {
            2147483647,
            0,
            0,
            0});
            this.maxBuildingsNud.Name = "maxBuildingsNud";
            this.maxBuildingsNud.Size = new System.Drawing.Size(245, 20);
            this.maxBuildingsNud.TabIndex = 15;
            // 
            // maxUnitsNud
            // 
            this.maxUnitsNud.Dock = System.Windows.Forms.DockStyle.Fill;
            this.maxUnitsNud.Location = new System.Drawing.Point(81, 82);
            this.maxUnitsNud.Maximum = new decimal(new int[] {
            2147483647,
            0,
            0,
            0});
            this.maxUnitsNud.Name = "maxUnitsNud";
            this.maxUnitsNud.Size = new System.Drawing.Size(245, 20);
            this.maxUnitsNud.TabIndex = 16;
            // 
            // label5
            // 
            this.label5.AutoSize = true;
            this.label5.Location = new System.Drawing.Point(3, 229);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(31, 13);
            this.label5.TabIndex = 17;
            this.label5.Text = "Allies";
            // 
            // playersListBox
            // 
            this.playersListBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
            | System.Windows.Forms.AnchorStyles.Left)));
            this.playersListBox.FormattingEnabled = true;
            this.playersListBox.Location = new System.Drawing.Point(81, 232);
            this.playersListBox.Name = "playersListBox";
            this.playersListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
            this.playersListBox.Size = new System.Drawing.Size(100, 134);
            this.playersListBox.TabIndex = 18;
            // 
            // playerControlLbl
            // 
            this.playerControlLbl.AutoSize = true;
            this.playerControlLbl.Location = new System.Drawing.Point(3, 209);
            this.playerControlLbl.Name = "playerControlLbl";
            this.playerControlLbl.Size = new System.Drawing.Size(72, 13);
            this.playerControlLbl.TabIndex = 27;
            this.playerControlLbl.Text = "Player Control";
            // 
            // playerControlCheckBox
            // 
            this.playerControlCheckBox.AutoSize = true;
            this.playerControlCheckBox.Location = new System.Drawing.Point(81, 212);
            this.playerControlCheckBox.Name = "playerControlCheckBox";
            this.playerControlCheckBox.Size = new System.Drawing.Size(15, 14);
            this.playerControlCheckBox.TabIndex = 28;
            this.playerControlCheckBox.UseVisualStyleBackColor = true;
            // 
            // PlayerSettings
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.tableLayoutPanel1);
            this.Name = "PlayerSettings";
            this.Size = new System.Drawing.Size(329, 372);
            this.tableLayoutPanel1.ResumeLayout(false);
            this.tableLayoutPanel1.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)(this.iqNud)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.techLevelNud)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.maxVesselsNud)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.maxInfantryNud)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.creditsNud)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.maxBuildingsNud)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.maxUnitsNud)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.ComboBox edgeComboBox;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.NumericUpDown creditsNud;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.Label label4;
        private System.Windows.Forms.NumericUpDown maxBuildingsNud;
        private System.Windows.Forms.NumericUpDown maxUnitsNud;
        private System.Windows.Forms.Label label5;
        private System.Windows.Forms.ListBox playersListBox;
        private System.Windows.Forms.Label techLevelLbl;
        private System.Windows.Forms.Label maxVesselsLbl;
        private System.Windows.Forms.Label maxInfantryLbl;
        private System.Windows.Forms.Label iqLbl;
        private System.Windows.Forms.NumericUpDown maxVesselsNud;
        private System.Windows.Forms.NumericUpDown maxInfantryNud;
        private System.Windows.Forms.NumericUpDown iqNud;
        private System.Windows.Forms.NumericUpDown techLevelNud;
        private System.Windows.Forms.Label playerControlLbl;
        private System.Windows.Forms.CheckBox playerControlCheckBox;
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/PlayerSettings.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
using MobiusEditor.Interface;
using MobiusEditor.Model;
using MobiusEditor.Utility;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Windows.Forms;

namespace MobiusEditor.Controls
{
    public partial class PlayerSettings : UserControl
    {
        private readonly PropertyTracker<House> houseSettingsTracker;
        private readonly dynamic house;

        public PlayerSettings(IGamePlugin plugin, PropertyTracker<House> houseSettingsTracker)
        {
            this.houseSettingsTracker = houseSettingsTracker;
            house = houseSettingsTracker;

            InitializeComponent();

            edgeComboBox.Items.Clear();
            edgeComboBox.Items.AddRange(new string[] { "North", "South", "West", "East" });

            creditsNud.DataBindings.Add("Value", houseSettingsTracker, "Credits");
            maxBuildingsNud.DataBindings.Add("Value", houseSettingsTracker, "MaxBuilding");
            maxUnitsNud.DataBindings.Add("Value", houseSettingsTracker, "MaxUnit");
            edgeComboBox.DataBindings.Add("SelectedItem", houseSettingsTracker, "Edge");

            switch (plugin.GameType)
            {
                case GameType.TiberianDawn:
                    maxInfantryNud.Visible = maxInfantryLbl.Visible = false;
                    maxVesselsNud.Visible = maxVesselsLbl.Visible = false;
                    techLevelNud.Visible = techLevelLbl.Visible = false;
                    iqNud.Visible = iqLbl.Visible = false;
                    playerControlCheckBox.Visible = playerControlLbl.Visible = false;
                    break;
                case GameType.RedAlert:
                    maxInfantryNud.DataBindings.Add("Value", houseSettingsTracker, "MaxInfantry");
                    maxVesselsNud.DataBindings.Add("Value", houseSettingsTracker, "MaxVessel");
                    techLevelNud.DataBindings.Add("Value", houseSettingsTracker, "TechLevel");
                    iqNud.DataBindings.Add("Value", houseSettingsTracker, "IQ");
                    playerControlCheckBox.DataBindings.Add("Checked", houseSettingsTracker, "PlayerControl");
                    break;
            }

            playersListBox.Items.Clear();
            playersListBox.Items.AddRange(plugin.Map.Houses.Select(h => h.Type.Name).ToArray());

            var selectedIndices = new List<int>();
            foreach (var id in house.Allies)
            {
                playersListBox.SetSelected(id, true);
            }

            playersListBox.SelectedIndexChanged += playersListBox_SelectedIndexChanged;
        }

        private void playersListBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            var allies = 0;
            foreach (int selectedIndex in playersListBox.SelectedIndices)
            {
                allies |= 1 << selectedIndex;
            }
            house.Allies = new AlliesMask(allies);
        }
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/PlayerSettings.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: CnCTDRAMapEditor/Controls/PropertiesComboBox.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class PropertiesComboBox
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
        }

        #endregion
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/PropertiesComboBox.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
using System;
using System.Windows.Forms;

namespace MobiusEditor.Controls
{
    public partial class PropertiesComboBox : ComboBox
    {
        private bool savedAutoClose;

        private ToolStripDropDown DropDownHost
        {
            get
            {
                var parent = Parent;
                while ((parent != null) && !(parent is ToolStripDropDown))
                {
                    parent = parent.Parent;
                }
                return parent as ToolStripDropDown;
            }
        }

        public PropertiesComboBox()
        {
            InitializeComponent();
        }

        protected override void OnDropDownClosed(EventArgs e)
        {
            var dropDownHost = DropDownHost;
            if (dropDownHost != null)
            {
                dropDownHost.AutoClose = savedAutoClose;
            }

            base.OnDropDownClosed(e);
        }

        protected override void OnDropDown(EventArgs e)
        {
            var dropDownHost = DropDownHost;
            if (dropDownHost != null)
            {
                savedAutoClose = dropDownHost.AutoClose;
                dropDownHost.AutoClose = false;
            }

            base.OnDropDown(e);
        }
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/TerrainProperties.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class TerrainProperties
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
            this.label5 = new System.Windows.Forms.Label();
            this.triggerComboBox = new MobiusEditor.Controls.PropertiesComboBox();
            this.tableLayoutPanel1.SuspendLayout();
            this.SuspendLayout();
            // 
            // tableLayoutPanel1
            // 
            this.tableLayoutPanel1.ColumnCount = 2;
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 31.25F));
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 68.75F));
            this.tableLayoutPanel1.Controls.Add(this.label5, 0, 0);
            this.tableLayoutPanel1.Controls.Add(this.triggerComboBox, 1, 0);
            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
            this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
            this.tableLayoutPanel1.RowCount = 1;
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
            this.tableLayoutPanel1.Size = new System.Drawing.Size(336, 38);
            this.tableLayoutPanel1.TabIndex = 0;
            // 
            // label5
            // 
            this.label5.AutoSize = true;
            this.label5.Dock = System.Windows.Forms.DockStyle.Fill;
            this.label5.Location = new System.Drawing.Point(4, 0);
            this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(97, 38);
            this.label5.TabIndex = 4;
            this.label5.Text = "Trigger";
            this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // triggerComboBox
            // 
            this.triggerComboBox.Dock = System.Windows.Forms.DockStyle.Fill;
            this.triggerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.triggerComboBox.FormattingEnabled = true;
            this.triggerComboBox.Location = new System.Drawing.Point(109, 5);
            this.triggerComboBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
            this.triggerComboBox.Name = "triggerComboBox";
            this.triggerComboBox.Size = new System.Drawing.Size(223, 28);
            this.triggerComboBox.TabIndex = 9;
            this.triggerComboBox.SelectedIndexChanged += new System.EventHandler(this.comboBox_SelectedValueChanged);
            // 
            // TriggerProperties
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.tableLayoutPanel1);
            this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
            this.Name = "TriggerProperties";
            this.Size = new System.Drawing.Size(336, 38);
            this.tableLayoutPanel1.ResumeLayout(false);
            this.tableLayoutPanel1.PerformLayout();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
        private System.Windows.Forms.Label label5;
        private MobiusEditor.Controls.PropertiesComboBox triggerComboBox;
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/TerrainProperties.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
using MobiusEditor.Interface;
using MobiusEditor.Model;
using MobiusEditor.Utility;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Windows.Forms;

namespace MobiusEditor.Controls
{
    public partial class TerrainProperties : UserControl
    {
        private bool isMockObject;

        public IGamePlugin Plugin { get; private set; }

        private Terrain terrain;
        public Terrain Terrain
        {
            get => terrain;
            set
            {
                if (terrain != value)
                {
                    terrain = value;
                    Rebind();
                }
            }
        }

        public TerrainProperties()
        {
            InitializeComponent();
        }

        public void Initialize(IGamePlugin plugin, bool isMockObject)
        {
            this.isMockObject = isMockObject;

            Plugin = plugin;
            plugin.Map.Triggers.CollectionChanged += Triggers_CollectionChanged;

            UpdateDataSource();

            Disposed += (sender, e) =>
            {
                Terrain = null;
                plugin.Map.Triggers.CollectionChanged -= Triggers_CollectionChanged;
            };
        }

        private void Triggers_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            UpdateDataSource();
        }

        private void UpdateDataSource()
        {
            triggerComboBox.DataSource = Trigger.None.Yield().Concat(Plugin.Map.Triggers.Select(t => t.Name).Distinct()).ToArray();
        }

        private void Rebind()
        {
            triggerComboBox.DataBindings.Clear();

            if (terrain == null)
            {
                return;
            }

            triggerComboBox.DataBindings.Add("SelectedItem", terrain, "Trigger");
        }

        private void Obj_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            switch (e.PropertyName)
            {
                case "Type":
                    {
                        Rebind();
                    }
                    break;
            }

            if (!isMockObject)
            {
                Plugin.Dirty = true;
            }
        }

        private void comboBox_SelectedValueChanged(object sender, EventArgs e)
        {
            foreach (Binding binding in (sender as ComboBox).DataBindings)
            {
                binding.WriteValue();
            }
        }

        private void nud_ValueChanged(object sender, EventArgs e)
        {
            foreach (Binding binding in (sender as NumericUpDown).DataBindings)
            {
                binding.WriteValue();
            }
        }
    }

    public class TerrainPropertiesPopup : ToolStripDropDown
    {
        private readonly ToolStripControlHost host;

        public TerrainProperties TerrainProperties { get; private set; }

        public TerrainPropertiesPopup(IGamePlugin plugin, Terrain terrain)
        {
            TerrainProperties = new TerrainProperties();
            TerrainProperties.Initialize(plugin, false);
            TerrainProperties.Terrain = terrain;

            host = new ToolStripControlHost(TerrainProperties);
            Padding = Margin = host.Padding = host.Margin = Padding.Empty;
            MinimumSize = TerrainProperties.MinimumSize;
            TerrainProperties.MinimumSize = TerrainProperties.Size;
            MaximumSize = TerrainProperties.MaximumSize;
            TerrainProperties.MaximumSize = TerrainProperties.Size;
            Size = TerrainProperties.Size;
            Items.Add(host);
            TerrainProperties.Disposed += (sender, e) =>
            {
                TerrainProperties = null;
                Dispose(true);
            };
        }

        protected override void OnClosed(ToolStripDropDownClosedEventArgs e)
        {
            base.OnClosed(e);

            TerrainProperties.Terrain = null;
        }
    }
}


================================================
FILE: CnCTDRAMapEditor/Controls/TerrainProperties.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: CnCTDRAMapEditor/Controls/TypeComboBox.Designer.cs
================================================
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor and corresponding 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 3 of the License, or (at your option) any later version.

// The Command & Conquer Map Editor and corresponding source code is distributed 
// in the hope that it will be useful, but with permitted additional restrictions 
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
// distributed with this program. You should have received a copy of the 
// GNU General Public License along with permitted additional restrictions 
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
namespace MobiusEditor.Controls
{
    partial class TypeComboBox
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</par
Download .txt
gitextract_n7svjjo2/

├── .gitignore
├── CnCRemastered.sln
├── CnCTDRAMapEditor/
│   ├── App.config
│   ├── CnCTDRAMapEditor.csproj
│   ├── Controls/
│   │   ├── BasicSettings.Designer.cs
│   │   ├── BasicSettings.cs
│   │   ├── BasicSettings.resx
│   │   ├── BriefingSettings.Designer.cs
│   │   ├── BriefingSettings.cs
│   │   ├── BriefingSettings.resx
│   │   ├── ImageTooltip.Designer.cs
│   │   ├── ImageTooltip.cs
│   │   ├── MapPanel.Designer.cs
│   │   ├── MapPanel.cs
│   │   ├── MapPanel.resx
│   │   ├── MenuButton.Designer.cs
│   │   ├── MenuButton.cs
│   │   ├── ObjectProperties.Designer.cs
│   │   ├── ObjectProperties.cs
│   │   ├── ObjectProperties.resx
│   │   ├── PlayerSettings.Designer.cs
│   │   ├── PlayerSettings.cs
│   │   ├── PlayerSettings.resx
│   │   ├── PropertiesComboBox.Designer.cs
│   │   ├── PropertiesComboBox.cs
│   │   ├── TerrainProperties.Designer.cs
│   │   ├── TerrainProperties.cs
│   │   ├── TerrainProperties.resx
│   │   ├── TypeComboBox.Designer.cs
│   │   └── TypeComboBox.cs
│   ├── Dialogs/
│   │   ├── ErrorMessageBox.Designer.cs
│   │   ├── ErrorMessageBox.cs
│   │   ├── ErrorMessageBox.resx
│   │   ├── InviteMessageBox.Designer.cs
│   │   ├── InviteMessageBox.cs
│   │   ├── InviteMessageBox.resx
│   │   ├── MapSettingsDialog.Designer.cs
│   │   ├── MapSettingsDialog.cs
│   │   ├── MapSettingsDialog.resx
│   │   ├── NewMapDialog.Designer.cs
│   │   ├── NewMapDialog.cs
│   │   ├── NewMapDialog.resx
│   │   ├── SteamDialog.Designer.cs
│   │   ├── SteamDialog.cs
│   │   ├── SteamDialog.resx
│   │   ├── TeamTypesDialog.Designer.cs
│   │   ├── TeamTypesDialog.cs
│   │   ├── TeamTypesDialog.resx
│   │   ├── TriggersDialog.Designer.cs
│   │   ├── TriggersDialog.cs
│   │   └── TriggersDialog.resx
│   ├── Event/
│   │   ├── RenderEventArgs.cs
│   │   └── UndoRedoEventArgs.cs
│   ├── Globals.cs
│   ├── Interface/
│   │   ├── IBrowsableType.cs
│   │   ├── ICellOccupier.cs
│   │   ├── ICellOverlapper.cs
│   │   ├── IGamePlugin.cs
│   │   ├── INamedType.cs
│   │   ├── ITechnoType.cs
│   │   ├── ITool.cs
│   │   └── IWidget.cs
│   ├── License.txt
│   ├── MainForm.Designer.cs
│   ├── MainForm.cs
│   ├── MainForm.resx
│   ├── Model/
│   │   ├── BasicSection.cs
│   │   ├── BriefingSection.cs
│   │   ├── Building.cs
│   │   ├── BuildingType.cs
│   │   ├── CellGrid.cs
│   │   ├── CellMetrics.cs
│   │   ├── CellTrigger.cs
│   │   ├── DirectionType.cs
│   │   ├── House.cs
│   │   ├── HouseType.cs
│   │   ├── Infantry.cs
│   │   ├── InfantryType.cs
│   │   ├── Map.cs
│   │   ├── MapSection.cs
│   │   ├── OccupierSet.cs
│   │   ├── OverlapperSet.cs
│   │   ├── Overlay.cs
│   │   ├── OverlayType.cs
│   │   ├── Smudge.cs
│   │   ├── SmudgeType.cs
│   │   ├── SteamSection.cs
│   │   ├── TeamType.cs
│   │   ├── Template.cs
│   │   ├── TemplateType.cs
│   │   ├── Terrain.cs
│   │   ├── TerrainType.cs
│   │   ├── TheaterType.cs
│   │   ├── Trigger.cs
│   │   ├── TypeItem.cs
│   │   ├── Unit.cs
│   │   ├── UnitType.cs
│   │   └── Waypoint.cs
│   ├── Program.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   ├── Settings.Designer.cs
│   │   └── Settings.settings
│   ├── RedAlert/
│   │   ├── ActionDataTypes.cs
│   │   ├── ActionTypes.cs
│   │   ├── BasicSection.cs
│   │   ├── BuildingTypes.cs
│   │   ├── Constants.cs
│   │   ├── DirectionTypes.cs
│   │   ├── EventTypes.cs
│   │   ├── GamePlugin.cs
│   │   ├── House.cs
│   │   ├── HouseTypes.cs
│   │   ├── InfantryTypes.cs
│   │   ├── MissionTypes.cs
│   │   ├── OverlayTypes.cs
│   │   ├── SmudgeTypes.cs
│   │   ├── TeamMissionTypes.cs
│   │   ├── TemplateTypes.cs
│   │   ├── TerrainTypes.cs
│   │   ├── TheaterTypes.cs
│   │   └── UnitTypes.cs
│   ├── Render/
│   │   └── MapRenderer.cs
│   ├── Steamworks.NET/
│   │   ├── CallbackDispatcher.cs
│   │   ├── CallbackIdentity.cs
│   │   ├── ISteamMatchmakingResponses.cs
│   │   ├── InteropHelp.cs
│   │   ├── Packsize.cs
│   │   ├── Steam.cs
│   │   ├── autogen/
│   │   │   ├── NativeMethods.cs
│   │   │   ├── SteamCallbacks.cs
│   │   │   ├── SteamConstants.cs
│   │   │   ├── SteamEnums.cs
│   │   │   ├── SteamStructs.cs
│   │   │   ├── isteamapplist.cs
│   │   │   ├── isteamapps.cs
│   │   │   ├── isteamclient.cs
│   │   │   ├── isteamcontroller.cs
│   │   │   ├── isteamfriends.cs
│   │   │   ├── isteamgameserver.cs
│   │   │   ├── isteamgameserverapps.cs
│   │   │   ├── isteamgameserverclient.cs
│   │   │   ├── isteamgameserverhttp.cs
│   │   │   ├── isteamgameserverinventory.cs
│   │   │   ├── isteamgameservernetworking.cs
│   │   │   ├── isteamgameserverstats.cs
│   │   │   ├── isteamgameserverugc.cs
│   │   │   ├── isteamgameserverutils.cs
│   │   │   ├── isteamhtmlsurface.cs
│   │   │   ├── isteamhttp.cs
│   │   │   ├── isteaminput.cs
│   │   │   ├── isteaminventory.cs
│   │   │   ├── isteammatchmaking.cs
│   │   │   ├── isteammusic.cs
│   │   │   ├── isteammusicremote.cs
│   │   │   ├── isteamnetworking.cs
│   │   │   ├── isteamparentalsettings.cs
│   │   │   ├── isteamremoteplay.cs
│   │   │   ├── isteamremotestorage.cs
│   │   │   ├── isteamscreenshots.cs
│   │   │   ├── isteamugc.cs
│   │   │   ├── isteamunifiedmessages.cs
│   │   │   ├── isteamuser.cs
│   │   │   ├── isteamuserstats.cs
│   │   │   ├── isteamutils.cs
│   │   │   └── isteamvideo.cs
│   │   └── types/
│   │       ├── MatchmakingTypes/
│   │       │   ├── gameserveritem_t.cs
│   │       │   └── servernetadr_t.cs
│   │       ├── SteamClient/
│   │       │   ├── SteamAPIWarningMessageHook_t.cs
│   │       │   ├── SteamAPI_CheckCallbackRegistered_t.cs
│   │       │   └── SteamAPI_PostAPIResultInProcess_t.cs
│   │       ├── SteamClientPublic/
│   │       │   ├── CGameID.cs
│   │       │   ├── CSteamID.cs
│   │       │   └── HAuthTicket.cs
│   │       ├── SteamController/
│   │       │   ├── ControllerActionSetHandle_t.cs
│   │       │   ├── ControllerAnalogActionHandle_t.cs
│   │       │   ├── ControllerDigitalActionHandle_t.cs
│   │       │   └── ControllerHandle_t.cs
│   │       ├── SteamFriends/
│   │       │   └── FriendsGroupID_t.cs
│   │       ├── SteamHTMLSurface/
│   │       │   └── HHTMLBrowser.cs
│   │       ├── SteamHTTP/
│   │       │   ├── HTTPCookieContainerHandle.cs
│   │       │   └── HTTPRequestHandle.cs
│   │       ├── SteamInput/
│   │       │   ├── InputActionSetHandle_t.cs
│   │       │   ├── InputAnalogActionHandle_t.cs
│   │       │   ├── InputDigitalActionHandle_t.cs
│   │       │   └── InputHandle_t.cs
│   │       ├── SteamInventory/
│   │       │   ├── SteamInventoryResult_t.cs
│   │       │   ├── SteamInventoryUpdateHandle_t.cs
│   │       │   ├── SteamItemDef_t.cs
│   │       │   └── SteamItemInstanceID_t.cs
│   │       ├── SteamMatchmaking/
│   │       │   ├── HServerListRequest.cs
│   │       │   └── HServerQuery.cs
│   │       ├── SteamNetworking/
│   │       │   ├── SNetListenSocket_t.cs
│   │       │   └── SNetSocket_t.cs
│   │       ├── SteamRemoteStorage/
│   │       │   ├── PublishedFileId_t.cs
│   │       │   ├── PublishedFileUpdateHandle_t.cs
│   │       │   ├── UGCFileWriteStreamHandle_t.cs
│   │       │   └── UGCHandle_t.cs
│   │       ├── SteamScreenshots/
│   │       │   └── ScreenshotHandle.cs
│   │       ├── SteamTypes/
│   │       │   ├── AccountID_t.cs
│   │       │   ├── AppId_t.cs
│   │       │   ├── DepotId_t.cs
│   │       │   ├── ManifestId_t.cs
│   │       │   ├── PartyBeaconID_t.cs
│   │       │   ├── RTime32.cs
│   │       │   ├── SiteId_t.cs
│   │       │   └── SteamAPICall_t.cs
│   │       ├── SteamUGC/
│   │       │   ├── UGCQueryHandle_t.cs
│   │       │   └── UGCUpdateHandle_t.cs
│   │       ├── SteamUnifiedMessages/
│   │       │   └── ClientUnifiedMessageHandle.cs
│   │       ├── SteamUserStats/
│   │       │   ├── SteamLeaderboardEntries_t.cs
│   │       │   └── SteamLeaderboard_t.cs
│   │       └── Steam_api_common/
│   │           ├── HSteamPipe.cs
│   │           └── HSteamUser.cs
│   ├── TiberianDawn/
│   │   ├── ActionTypes.cs
│   │   ├── BasicSection.cs
│   │   ├── BuildingTypes.cs
│   │   ├── Constants.cs
│   │   ├── DirectionTypes.cs
│   │   ├── EventTypes.cs
│   │   ├── GamePlugin.cs
│   │   ├── House.cs
│   │   ├── HouseTypes.cs
│   │   ├── InfantryTypes.cs
│   │   ├── MissionTypes.cs
│   │   ├── OverlayTypes.cs
│   │   ├── SmudgeTypes.cs
│   │   ├── TeamMissionTypes.cs
│   │   ├── TemplateTypes.cs
│   │   ├── TerrainTypes.cs
│   │   ├── TheaterTypes.cs
│   │   └── UnitTypes.cs
│   ├── Tools/
│   │   ├── BuildingTool.cs
│   │   ├── CellTriggersTool.cs
│   │   ├── Dialogs/
│   │   │   ├── CellTriggersToolDialog.Designer.cs
│   │   │   ├── CellTriggersToolDialog.cs
│   │   │   ├── CellTriggersToolDialog.resx
│   │   │   ├── GenericToolDialog.Designer.cs
│   │   │   ├── GenericToolDialog.cs
│   │   │   ├── GenericToolDialog.resx
│   │   │   ├── ObjectToolDialog.Designer.cs
│   │   │   ├── ObjectToolDialog.cs
│   │   │   ├── ObjectToolDialog.resx
│   │   │   ├── ResourcesToolDialog.Designer.cs
│   │   │   ├── ResourcesToolDialog.cs
│   │   │   ├── ResourcesToolDialog.resx
│   │   │   ├── TemplateToolDialog.Designer.cs
│   │   │   ├── TemplateToolDialog.cs
│   │   │   ├── TemplateToolDialog.resx
│   │   │   ├── TerrainToolDialog.Designer.cs
│   │   │   ├── TerrainToolDialog.cs
│   │   │   ├── TerrainToolDialog.resx
│   │   │   ├── WaypointsToolDialog.Designer.cs
│   │   │   ├── WaypointsToolDialog.cs
│   │   │   └── WaypointsToolDialog.resx
│   │   ├── InfantryTool.cs
│   │   ├── OverlaysTool.cs
│   │   ├── ResourcesTool.cs
│   │   ├── SmudgeTool.cs
│   │   ├── TemplateTool.cs
│   │   ├── TerrainTool.cs
│   │   ├── UnitTool.cs
│   │   ├── ViewTool.cs
│   │   ├── WallsTool.cs
│   │   └── WaypointsTool.cs
│   ├── Utility/
│   │   ├── CRC.cs
│   │   ├── ExtensionMethods.cs
│   │   ├── GameTextManager.cs
│   │   ├── INI.cs
│   │   ├── MRU.cs
│   │   ├── Megafile.cs
│   │   ├── MegafileBuilder.cs
│   │   ├── MegafileManager.cs
│   │   ├── PropertyTracker.cs
│   │   ├── SteamworksUGC.cs
│   │   ├── TGASharpLib.cs
│   │   ├── TeamColor.cs
│   │   ├── TeamColorManager.cs
│   │   ├── TextureManager.cs
│   │   ├── Tileset.cs
│   │   ├── TilesetManager.cs
│   │   ├── UndoRedoList.cs
│   │   └── WWCompression.cs
│   └── Widgets/
│       └── NavigationWidget.cs
├── CnCTDRAMapEditor.sln
├── LICENSE.md
├── README.md
├── REDALERT/
│   ├── 2KEYFRAM.CPP
│   ├── 2SUPPORT.ASM
│   ├── 2TXTPRNT.ASM
│   ├── AADATA.CPP
│   ├── ABSTRACT.CPP
│   ├── ABSTRACT.H
│   ├── ADATA.CPP
│   ├── ADPCM.CPP
│   ├── AIRCRAFT.CPP
│   ├── AIRCRAFT.H
│   ├── ANIM.CPP
│   ├── ANIM.H
│   ├── AUDIO.CPP
│   ├── AUDIO.H
│   ├── B64PIPE.CPP
│   ├── B64PIPE.H
│   ├── B64STRAW.CPP
│   ├── B64STRAW.H
│   ├── BAR.CPP
│   ├── BAR.H
│   ├── BASE.CPP
│   ├── BASE.H
│   ├── BASE64.CPP
│   ├── BASE64.H
│   ├── BBDATA.CPP
│   ├── BDATA.CPP
│   ├── BENCH.CPP
│   ├── BENCH.H
│   ├── BFIOFILE.CPP
│   ├── BFIOFILE.H
│   ├── BIGCHECK.CPP
│   ├── BIGCHECK.H
│   ├── BLOWFISH.CPP
│   ├── BLOWFISH.H
│   ├── BLOWPIPE.CPP
│   ├── BLOWPIPE.H
│   ├── BLWSTRAW.CPP
│   ├── BLWSTRAW.H
│   ├── BMP8.CPP
│   ├── BMP8.H
│   ├── BUFF.CPP
│   ├── BUFF.H
│   ├── BUFFERX.H
│   ├── BUILDING.CPP
│   ├── BUILDING.H
│   ├── BULLET.CPP
│   ├── BULLET.H
│   ├── CARGO.CPP
│   ├── CARGO.H
│   ├── CARRY.CPP
│   ├── CARRY.H
│   ├── CBN_.H
│   ├── CCDDE.CPP
│   ├── CCDDE.H
│   ├── CCFILE.CPP
│   ├── CCFILE.H
│   ├── CCINI.CPP
│   ├── CCINI.H
│   ├── CCMPATH.CPP
│   ├── CCPTR.CPP
│   ├── CCPTR.H
│   ├── CCTEN.CPP
│   ├── CDATA.CPP
│   ├── CDFILE.CPP
│   ├── CDFILE.H
│   ├── CELL.CPP
│   ├── CELL.H
│   ├── CHECKBOX.CPP
│   ├── CHECKBOX.H
│   ├── CHEKLIST.CPP
│   ├── CHEKLIST.H
│   ├── CLASS.CPP
│   ├── COLRLIST.CPP
│   ├── COLRLIST.H
│   ├── COMBAT.CPP
│   ├── COMBUF.CPP
│   ├── COMBUF.H
│   ├── COMINIT.CPP
│   ├── COMINIT.H
│   ├── COMPAT.H
│   ├── COMQUEUE.CPP
│   ├── COMQUEUE.H
│   ├── CONFDLG.CPP
│   ├── CONFDLG.H
│   ├── CONNECT.CPP
│   ├── CONNECT.H
│   ├── CONNMGR.H
│   ├── CONQUER.CPP
│   ├── CONQUER.H
│   ├── CONST.CPP
│   ├── CONTROL.CPP
│   ├── CONTROL.H
│   ├── COORD.CPP
│   ├── COORDA.ASM
│   ├── COORDA.h
│   ├── CPUID.ASM
│   ├── CRATE.CPP
│   ├── CRATE.H
│   ├── CRC.CPP
│   ├── CRC.H
│   ├── CRCPIPE.CPP
│   ├── CRCPIPE.H
│   ├── CRCSTRAW.CPP
│   ├── CRCSTRAW.H
│   ├── CREDITS.CPP
│   ├── CREDITS.H
│   ├── CREW.CPP
│   ├── CREW.H
│   ├── CSTRAW.CPP
│   ├── CSTRAW.H
│   ├── DDE.CPP
│   ├── DDE.H
│   ├── DEBUG.CPP
│   ├── DEBUG.H
│   ├── DEFINES.H
│   ├── DESCDLG.CPP
│   ├── DESCDLG.H
│   ├── DIAL8.CPP
│   ├── DIAL8.H
│   ├── DIALOG.CPP
│   ├── DIBAPI.H
│   ├── DIBFILE.CPP
│   ├── DIBUTIL.CPP
│   ├── DIBUTIL.H
│   ├── DISPLAY.CPP
│   ├── DISPLAY.H
│   ├── DLLInterface.cpp
│   ├── DLLInterface.h
│   ├── DLLInterfaceEditor.cpp
│   ├── DLLInterfaceVersion.h
│   ├── DOOR.CPP
│   ├── DOOR.H
│   ├── DPMI.CPP
│   ├── DPMI.H
│   ├── DRIVE.CPP
│   ├── DRIVE.H
│   ├── DROP.CPP
│   ├── DROP.H
│   ├── DTABLE.CPP
│   ├── DYNAVEC.CPP
│   ├── EDIT.CPP
│   ├── EDIT.H
│   ├── EGOS.CPP
│   ├── EGOS.H
│   ├── ENDING.CPP
│   ├── ENDING.H
│   ├── EVENT.CPP
│   ├── EVENT.H
│   ├── EXPAND.CPP
│   ├── EXTERNS.H
│   ├── FACE.CPP
│   ├── FACE.H
│   ├── FACING.CPP
│   ├── FACING.H
│   ├── FACTORY.CPP
│   ├── FACTORY.H
│   ├── FAKESOCK.H
│   ├── FIELD.CPP
│   ├── FIELD.H
│   ├── FILEPCX.H
│   ├── FINDPATH.CPP
│   ├── FIXED.CPP
│   ├── FIXED.H
│   ├── FLASHER.CPP
│   ├── FLASHER.H
│   ├── FLY.CPP
│   ├── FLY.H
│   ├── FOOT.CPP
│   ├── FOOT.H
│   ├── FTIMER.H
│   ├── FUNCTION.H
│   ├── FUSE.CPP
│   ├── FUSE.H
│   ├── GADGET.CPP
│   ├── GADGET.H
│   ├── GAMEDLG.CPP
│   ├── GAMEDLG.H
│   ├── GAUGE.CPP
│   ├── GAUGE.H
│   ├── GETCPU.CPP
│   ├── GLOBALS.CPP
│   ├── GOPTIONS.CPP
│   ├── GOPTIONS.H
│   ├── GSCREEN.CPP
│   ├── GSCREEN.H
│   ├── HDATA.CPP
│   ├── HEAP.CPP
│   ├── HEAP.H
│   ├── HELP.CPP
│   ├── HELP.H
│   ├── HOUSE.CPP
│   ├── HOUSE.H
│   ├── HSV.CPP
│   ├── HSV.H
│   ├── ICONLIST.CPP
│   ├── ICONLIST.H
│   ├── IDATA.CPP
│   ├── INFANTRY.CPP
│   ├── INFANTRY.H
│   ├── INI.CPP
│   ├── INI.H
│   ├── INIBIN.CPP
│   ├── INICODE.CPP
│   ├── INIT.CPP
│   ├── INLINE.H
│   ├── INT.CPP
│   ├── INT.H
│   ├── INTERNET.CPP
│   ├── INTERNET.H
│   ├── INTERPAL.CPP
│   ├── INTRO.CPP
│   ├── INTRO.H
│   ├── IOMAP.CPP
│   ├── IOOBJ.CPP
│   ├── IPX.CPP
│   ├── IPX.H
│   ├── IPX95.CPP
│   ├── IPX95.H
│   ├── IPXADDR.CPP
│   ├── IPXADDR.H
│   ├── IPXCONN.CPP
│   ├── IPXCONN.H
│   ├── IPXGCONN.CPP
│   ├── IPXGCONN.H
│   ├── IPXMGR.CPP
│   ├── IPXMGR.H
│   ├── IPXPROT.ASM
│   ├── IPXREAL.ASM
│   ├── ITABLE.CPP
│   ├── JSHELL.CPP
│   ├── JSHELL.H
│   ├── KEY.CPP
│   ├── KEY.H
│   ├── KEYBOARD.CPP
│   ├── KEYBOARD.H
│   ├── KEYFBUFF.ASM
│   ├── LANGUAGE.H
│   ├── LAYER.CPP
│   ├── LAYER.H
│   ├── LCW.CPP
│   ├── LCW.H
│   ├── LCWCOMP.ASM
│   ├── LCWPIPE.CPP
│   ├── LCWPIPE.H
│   ├── LCWSTRAW.CPP
│   ├── LCWSTRAW.H
│   ├── LCWUNCMP.CPP
│   ├── LED.H
│   ├── LINK.CPP
│   ├── LINK.H
│   ├── LINT.H
│   ├── LIST.CPP
│   ├── LIST.H
│   ├── LISTNODE.H
│   ├── LOADDLG.CPP
│   ├── LOADDLG.H
│   ├── LOGIC.CPP
│   ├── LOGIC.H
│   ├── LZO.H
│   ├── LZO1X.H
│   ├── LZO1X_C.CPP
│   ├── LZO1X_D.CPP
│   ├── LZOCONF.H
│   ├── LZOPIPE.CPP
│   ├── LZOPIPE.H
│   ├── LZOSTRAW.CPP
│   ├── LZOSTRAW.H
│   ├── LZO_CONF.H
│   ├── LZW.CPP
│   ├── LZW.H
│   ├── LZWOTRAW.CPP
│   ├── LZWPIPE.CPP
│   ├── LZWPIPE.H
│   ├── LZWSTRAW.CPP
│   ├── LZWSTRAW.H
│   ├── License.txt
│   ├── MAP.CPP
│   ├── MAP.H
│   ├── MAPEDDLG.CPP
│   ├── MAPEDIT.CPP
│   ├── MAPEDIT.H
│   ├── MAPEDPLC.CPP
│   ├── MAPEDSEL.CPP
│   ├── MAPEDTM.CPP
│   ├── MAPSEL.CPP
│   ├── MCI.CPP
│   ├── MCI.H
│   ├── MCIMOVIE.CPP
│   ├── MCIMOVIE.H
│   ├── MEMCHECK.H
│   ├── MENUS.CPP
│   ├── MESSAGE.H
│   ├── MISSION.CPP
│   ├── MISSION.H
│   ├── MIXFILE.CPP
│   ├── MIXFILE.H
│   ├── MMX.ASM
│   ├── MONOC.CPP
│   ├── MONOC.H
│   ├── MOUSE.CPP
│   ├── MOUSE.H
│   ├── MOVIE.H
│   ├── MP.CPP
│   ├── MP.H
│   ├── MPGSET.CPP
│   ├── MPGSET.H
│   ├── MPLAYER.CPP
│   ├── MPLIB.CPP
│   ├── MPMGRD.CPP
│   ├── MPMGRD.H
│   ├── MPMGRW.CPP
│   ├── MPMGRW.H
│   ├── MPU.CPP
│   ├── MPU.H
│   ├── MSGBOX.CPP
│   ├── MSGBOX.H
│   ├── MSGLIST.CPP
│   ├── MSGLIST.H
│   ├── MiscAsm.cpp
│   ├── NETDLG.CPP
│   ├── NOSEQCON.CPP
│   ├── NOSEQCON.H
│   ├── NULLCONN.CPP
│   ├── NULLCONN.H
│   ├── NULLDLG.CPP
│   ├── NULLMGR.CPP
│   ├── NULLMGR.H
│   ├── OBJECT.CPP
│   ├── OBJECT.H
│   ├── OCIDL.H
│   ├── ODATA.CPP
│   ├── OPTIONS.CPP
│   ├── OPTIONS.H
│   ├── OVERLAY.CPP
│   ├── OVERLAY.H
│   ├── PACKET.CPP
│   ├── PACKET.H
│   ├── PALETTEC.CPP
│   ├── PALETTEC.H
│   ├── PIPE.CPP
│   ├── PIPE.H
│   ├── PK.CPP
│   ├── PK.H
│   ├── PKPIPE.CPP
│   ├── PKPIPE.H
│   ├── PKSTRAW.CPP
│   ├── PKSTRAW.H
│   ├── POWER.CPP
│   ├── POWER.H
│   ├── PROFILE.CPP
│   ├── QUEUE.CPP
│   ├── QUEUE.H
│   ├── RADAR.CPP
│   ├── RADAR.H
│   ├── RADIO.CPP
│   ├── RADIO.H
│   ├── RAMFILE.CPP
│   ├── RAMFILE.H
│   ├── RAND.CPP
│   ├── RANDOM.CPP
│   ├── RANDOM.H
│   ├── RAWFILE.CPP
│   ├── RAWFILE.H
│   ├── RAWOLAPI.CPP
│   ├── RAWOLAPI.H
│   ├── READLINE.CPP
│   ├── READLINE.H
│   ├── RECT.CPP
│   ├── RECT.H
│   ├── REGION.H
│   ├── REINF.CPP
│   ├── RESOURCE/
│   │   ├── RedAlert.rc
│   │   └── resource.h
│   ├── RGB.CPP
│   ├── RGB.H
│   ├── RNDSTRAW.CPP
│   ├── RNDSTRAW.H
│   ├── RNG.H
│   ├── ROTBMP.CPP
│   ├── ROTBMP.H
│   ├── RULES.CPP
│   ├── RULES.H
│   ├── RedAlert.vcxproj
│   ├── RedAlert.vcxproj.filters
│   ├── SAVEDLG.H
│   ├── SAVELOAD.CPP
│   ├── SCENARIO.CPP
│   ├── SCENARIO.H
│   ├── SCORE.CPP
│   ├── SCORE.H
│   ├── SCREEN.H
│   ├── SCROLL.CPP
│   ├── SCROLL.H
│   ├── SDATA.CPP
│   ├── SEARCH.H
│   ├── SEDITDLG.CPP
│   ├── SEDITDLG.H
│   ├── SENDFILE.CPP
│   ├── SEQCONN.CPP
│   ├── SEQCONN.H
│   ├── SESSION.CPP
│   ├── SESSION.H
│   ├── SHA.CPP
│   ├── SHA.H
│   ├── SHAPEBTN.CPP
│   ├── SHAPEBTN.H
│   ├── SHAPIPE.CPP
│   ├── SHAPIPE.H
│   ├── SHASTRAW.CPP
│   ├── SHASTRAW.H
│   ├── SIDEBAR.CPP
│   ├── SIDEBAR.H
│   ├── SIDEBARGlyphx.CPP
│   ├── SIDEBARGlyphx.H
│   ├── SLIDER.CPP
│   ├── SLIDER.H
│   ├── SMUDGE.CPP
│   ├── SMUDGE.H
│   ├── SOUNDDLG.CPP
│   ├── SOUNDDLG.H
│   ├── SPECIAL.CPP
│   ├── SPECIAL.H
│   ├── SPRITE.CPP
│   ├── STAGE.H
│   ├── STARTUP.CPP
│   ├── STATBTN.CPP
│   ├── STATBTN.H
│   ├── STATS.CPP
│   ├── STRAW.CPP
│   ├── STRAW.H
│   ├── STUB.CPP
│   ├── STYLE.H
│   ├── SUPER.CPP
│   ├── SUPER.H
│   ├── SUPPORT.ASM
│   ├── SURFACE.CPP
│   ├── SURFACE.H
│   ├── Shape.cpp
│   ├── TAB.CPP
│   ├── TAB.H
│   ├── TACTION.CPP
│   ├── TACTION.H
│   ├── TARGET.CPP
│   ├── TARGET.H
│   ├── TCPIP.CPP
│   ├── TCPIP.H
│   ├── TDATA.CPP
│   ├── TEAM.CPP
│   ├── TEAM.H
│   ├── TEAMTYPE.CPP
│   ├── TEAMTYPE.H
│   ├── TECHNO.CPP
│   ├── TECHNO.H
│   ├── TEMPLATE.CPP
│   ├── TEMPLATE.H
│   ├── TENMGR.CPP
│   ├── TENMGR.H
│   ├── TERRAIN.CPP
│   ├── TERRAIN.H
│   ├── TEVENT.CPP
│   ├── TEVENT.H
│   ├── TEXTBTN.CPP
│   ├── TEXTBTN.H
│   ├── THEME.CPP
│   ├── THEME.H
│   ├── TOGGLE.CPP
│   ├── TOGGLE.H
│   ├── TOOLTIP.CPP
│   ├── TOOLTIP.H
│   ├── TRACKER.CPP
│   ├── TRIGGER.CPP
│   ├── TRIGGER.H
│   ├── TRIGTYPE.CPP
│   ├── TRIGTYPE.H
│   ├── TURRET.CPP
│   ├── TURRET.H
│   ├── TXTLABEL.CPP
│   ├── TXTLABEL.H
│   ├── TXTPRNT.ASM
│   ├── TYPE.H
│   ├── UDATA.CPP
│   ├── UDPADDR.CPP
│   ├── UNIT.CPP
│   ├── UNIT.H
│   ├── UTRACKER.CPP
│   ├── UTRACKER.H
│   ├── VDATA.CPP
│   ├── VECTOR.CPP
│   ├── VECTOR.H
│   ├── VERSION.CPP
│   ├── VERSION.H
│   ├── VESSEL.CPP
│   ├── VESSEL.H
│   ├── VISUDLG.CPP
│   ├── VISUDLG.H
│   ├── VORTEX.CPP
│   ├── VORTEX.H
│   ├── W95TRACE.CPP
│   ├── W95TRACE.H
│   ├── WARHEAD.CPP
│   ├── WARHEAD.H
│   ├── WATCOM.H
│   ├── WEAPON.CPP
│   ├── WEAPON.H
│   ├── WIN32LIB/
│   │   ├── ALLOC.CPP
│   │   ├── AUDIO.H
│   │   ├── BUFFER.CPP
│   │   ├── BUFFER.H
│   │   ├── BUFFGLBL.CPP
│   │   ├── DDRAW.CPP
│   │   ├── DDRAW.H
│   │   ├── DEFINES.H
│   │   ├── DELAY.CPP
│   │   ├── DESCMGMT.H
│   │   ├── DIFFTB.INC
│   │   ├── DIPTHONG.CPP
│   │   ├── DIPTHONG.H
│   │   ├── DPLAY.H
│   │   ├── DRAWBUFF.H
│   │   ├── DRAWBUFF.INC
│   │   ├── DRAWRECT.CPP
│   │   ├── DSETUP.H
│   │   ├── DSOUND.H
│   │   ├── DrawMisc.cpp
│   │   ├── EXTERNS.H
│   │   ├── FASTFILE.H
│   │   ├── FILE.H
│   │   ├── FILEPCX.H
│   │   ├── FILETEMP.H
│   │   ├── FONT.CPP
│   │   ├── FONT.H
│   │   ├── FUNCTION.H
│   │   ├── GBUFFER.CPP
│   │   ├── GBUFFER.H
│   │   ├── GBUFFER.INC
│   │   ├── GETSHAPE.CPP
│   │   ├── ICONCACH.H
│   │   ├── ICONSET.CPP
│   │   ├── IFF.CPP
│   │   ├── IFF.H
│   │   ├── INDEXTB.INC
│   │   ├── IRANDOM.CPP
│   │   ├── KEYBOARD.H
│   │   ├── KEYBOARD.INC
│   │   ├── KEYSTRUC.INC
│   │   ├── LCWCOMP.ASM
│   │   ├── LCWUNCMP.ASM
│   │   ├── LOAD.CPP
│   │   ├── LOADFONT.CPP
│   │   ├── MCGAPRIM.INC
│   │   ├── MEMFLAG.H
│   │   ├── MISC.H
│   │   ├── MODEMREG.H
│   │   ├── MONO.H
│   │   ├── MOUSE.H
│   │   ├── MOUSE.INC
│   │   ├── MOUSEWW.CPP
│   │   ├── NYBBTB.INC
│   │   ├── PALETTE.CPP
│   │   ├── PALETTE.H
│   │   ├── PLAYCD.H
│   │   ├── PROFILE.H
│   │   ├── PROFILE.INC
│   │   ├── RAWFILE.H
│   │   ├── SET_FONT.CPP
│   │   ├── SHAPE.H
│   │   ├── SHAPE.INC
│   │   ├── SOS.H
│   │   ├── SOSCOMP.H
│   │   ├── SOSDATA.H
│   │   ├── SOSDEFS.H
│   │   ├── SOSFNCT.H
│   │   ├── SOSRES.H
│   │   ├── SOUND.H
│   │   ├── SOUNDINT.H
│   │   ├── STAMP.INC
│   │   ├── STRUCTS.H
│   │   ├── SVGAPRIM.INC
│   │   ├── TILE.H
│   │   ├── TIMER.CPP
│   │   ├── TIMER.H
│   │   ├── TIMERDWN.CPP
│   │   ├── TIMERINI.CPP
│   │   ├── TOBUFF.ASM
│   │   ├── VIDEO.H
│   │   ├── WINCOMM.H
│   │   ├── WINDOWS.CPP
│   │   ├── WINHIDE.CPP
│   │   ├── WRITEPCX.CPP
│   │   ├── WSA.H
│   │   ├── WWFILE.H
│   │   ├── WWLIB32.H
│   │   ├── WWMEM.H
│   │   ├── WWMEM.INC
│   │   ├── WW_WIN.H
│   │   ├── _DIPTABL.CPP
│   │   └── wwstd.h
│   ├── WINSTUB.CPP
│   ├── WOLAPIOB.CPP
│   ├── WOLAPIOB.H
│   ├── WOLDEBUG.H
│   ├── WOLEDIT.CPP
│   ├── WOLEDIT.H
│   ├── WOLSTRNG.CPP
│   ├── WOLSTRNG.H
│   ├── WOL_CGAM.CPP
│   ├── WOL_CHAT.CPP
│   ├── WOL_DNLD.CPP
│   ├── WOL_GSUP.CPP
│   ├── WOL_GSUP.H
│   ├── WOL_LOGN.CPP
│   ├── WOL_MAIN.CPP
│   ├── WOL_OPT.CPP
│   ├── WSNWLINK.H
│   ├── WSPIPX.CPP
│   ├── WSPIPX.H
│   ├── WSPROTO.CPP
│   ├── WSPROTO.H
│   ├── WSPUDP.CPP
│   ├── WSPUDP.H
│   ├── WWALLOC.H
│   ├── WWFILE.H
│   ├── XPIPE.CPP
│   ├── XPIPE.H
│   ├── XSTRAW.CPP
│   ├── XSTRAW.H
│   ├── _WSPROTO.CPP
│   └── _WSPROTO.H
├── SCRIPTS/
│   └── tgautil.py
└── TIBERIANDAWN/
    ├── AADATA.CPP
    ├── ABSTRACT.CPP
    ├── ABSTRACT.H
    ├── ADATA.CPP
    ├── AIRCRAFT.CPP
    ├── AIRCRAFT.H
    ├── ALLOC.CPP
    ├── ANIM.CPP
    ├── ANIM.H
    ├── AUDIO.CPP
    ├── AUDIO.H
    ├── BASE.CPP
    ├── BASE.H
    ├── BBDATA.CPP
    ├── BDATA.CPP
    ├── BUILDING.CPP
    ├── BUILDING.H
    ├── BULLET.CPP
    ├── BULLET.H
    ├── CARGO.CPP
    ├── CARGO.H
    ├── CCDDE.CPP
    ├── CCDDE.H
    ├── CCFILE.CPP
    ├── CCFILE.H
    ├── CC_ICON.RC
    ├── CDATA.CPP
    ├── CDFILE.CPP
    ├── CDFILE.H
    ├── CELL.CPP
    ├── CELL.H
    ├── CHECKBOX.CPP
    ├── CHECKBOX.H
    ├── CHEKLIST.CPP
    ├── CHEKLIST.H
    ├── COLRLIST.CPP
    ├── COLRLIST.H
    ├── COMBAT.CPP
    ├── COMBUF.CPP
    ├── COMBUF.H
    ├── COMPAT.H
    ├── COMQUEUE.CPP
    ├── COMQUEUE.H
    ├── CONFDLG.CPP
    ├── CONFDLG.H
    ├── CONNECT.CPP
    ├── CONNECT.H
    ├── CONNMGR.H
    ├── CONQUER.CPP
    ├── CONQUER.H
    ├── CONST.CPP
    ├── CONTROL.CPP
    ├── CONTROL.H
    ├── COORD.CPP
    ├── COORDA.ASM
    ├── COORDA.h
    ├── CREDITS.CPP
    ├── CREDITS.H
    ├── CREW.CPP
    ├── CREW.H
    ├── DDE.CPP
    ├── DDE.H
    ├── DEBUG.CPP
    ├── DEBUG.H
    ├── DEFINES.H
    ├── DESCDLG.CPP
    ├── DESCDLG.H
    ├── DIAL8.CPP
    ├── DIAL8.H
    ├── DIALOG.CPP
    ├── DISPLAY.CPP
    ├── DISPLAY.H
    ├── DLLInterface.cpp
    ├── DLLInterface.h
    ├── DLLInterfaceEditor.cpp
    ├── DLLInterfaceVersion.h
    ├── DOOR.CPP
    ├── DOOR.H
    ├── DPMI.CPP
    ├── DPMI.H
    ├── DRIVE.CPP
    ├── DRIVE.H
    ├── EDIT.CPP
    ├── EDIT.H
    ├── ENDING.CPP
    ├── ENDING.H
    ├── EVENT.CPP
    ├── EVENT.H
    ├── EXPAND.CPP
    ├── EXTERNS.H
    ├── FACING.CPP
    ├── FACING.H
    ├── FACTORY.CPP
    ├── FACTORY.H
    ├── FIELD.CPP
    ├── FIELD.H
    ├── FINDPATH.CPP
    ├── FLASHER.CPP
    ├── FLASHER.H
    ├── FLY.CPP
    ├── FLY.H
    ├── FOOT.CPP
    ├── FOOT.H
    ├── FTIMER.H
    ├── FUNCTION.H
    ├── FUSE.CPP
    ├── FUSE.H
    ├── GADGET.CPP
    ├── GADGET.H
    ├── GAMEDLG.CPP
    ├── GAMEDLG.H
    ├── GAUGE.CPP
    ├── GAUGE.H
    ├── GLOBALS.CPP
    ├── GOPTIONS.CPP
    ├── GOPTIONS.H
    ├── GSCREEN.CPP
    ├── GSCREEN.H
    ├── HDATA.CPP
    ├── HEAP.CPP
    ├── HEAP.H
    ├── HELP.CPP
    ├── HELP.H
    ├── HOUSE.CPP
    ├── HOUSE.H
    ├── IDATA.CPP
    ├── INFANTRY.CPP
    ├── INFANTRY.H
    ├── INI.CPP
    ├── INIT.CPP
    ├── INTERNET.CPP
    ├── INTERPAL.CPP
    ├── INTRO.CPP
    ├── INTRO.H
    ├── IOMAP.CPP
    ├── IOOBJ.CPP
    ├── IPX.CPP
    ├── IPX.H
    ├── IPX95.CPP
    ├── IPX95.H
    ├── IPXADDR.CPP
    ├── IPXADDR.H
    ├── IPXCONN.CPP
    ├── IPXCONN.H
    ├── IPXGCONN.CPP
    ├── IPXGCONN.H
    ├── IPXMGR.CPP
    ├── IPXMGR.H
    ├── IPXPROT.ASM
    ├── IPXREAL.ASM
    ├── JSHELL.CPP
    ├── JSHELL.H
    ├── KEYFBUFF.ASM
    ├── KEYFBUFF.INC
    ├── KEYFRAME.CPP
    ├── LAYER.CPP
    ├── LAYER.H
    ├── LED.H
    ├── LINK.CPP
    ├── LINK.H
    ├── LIST.CPP
    ├── LIST.H
    ├── LOADDLG.CPP
    ├── LOADDLG.H
    ├── LOGIC.CPP
    ├── LOGIC.H
    ├── License.txt
    ├── MAP.CPP
    ├── MAP.H
    ├── MAPEDDLG.CPP
    ├── MAPEDIT.CPP
    ├── MAPEDIT.H
    ├── MAPEDPLC.CPP
    ├── MAPEDSEL.CPP
    ├── MAPEDTM.CPP
    ├── MAPSEL.CPP
    ├── MENUS.CPP
    ├── MESSAGE.H
    ├── MISSION.CPP
    ├── MISSION.H
    ├── MIXFILE.CPP
    ├── MIXFILE.H
    ├── MMX.ASM
    ├── MONOC.CPP
    ├── MONOC.H
    ├── MOUSE.CPP
    ├── MOUSE.H
    ├── MPLAYER.CPP
    ├── MSGBOX.CPP
    ├── MSGBOX.H
    ├── MSGLIST.CPP
    ├── MSGLIST.H
    ├── MiscAsm.cpp
    ├── NETDLG.CPP
    ├── NOSEQCON.CPP
    ├── NOSEQCON.H
    ├── NULLCONN.CPP
    ├── NULLCONN.H
    ├── NULLDLG.CPP
    ├── NULLMGR.CPP
    ├── NULLMGR.H
    ├── OBJECT.CPP
    ├── OBJECT.H
    ├── ODATA.CPP
    ├── OPTIONS.CPP
    ├── OPTIONS.H
    ├── OVERLAY.CPP
    ├── OVERLAY.H
    ├── PACKET.CPP
    ├── PACKET.H
    ├── PAGFAULT.ASM
    ├── PHONE.H
    ├── POWER.CPP
    ├── POWER.H
    ├── PROFILE.CPP
    ├── QUEUE.CPP
    ├── QUEUE.H
    ├── RADAR.CPP
    ├── RADAR.H
    ├── RADIO.CPP
    ├── RADIO.H
    ├── RAND.CPP
    ├── RAWFILE.CPP
    ├── RAWFILE.H
    ├── REAL.H
    ├── REGION.H
    ├── REG_ICON.RC
    ├── REINF.CPP
    ├── RESOURCE/
    │   ├── TiberianDawn.rc
    │   └── resource.h
    ├── RULES.CPP
    ├── RULES.H
    ├── SAVEDLG.H
    ├── SAVELOAD.CPP
    ├── SCENARIO.CPP
    ├── SCORE.CPP
    ├── SCORE.H
    ├── SCREEN.H
    ├── SCROLL.CPP
    ├── SCROLL.H
    ├── SDATA.CPP
    ├── SEQCONN.CPP
    ├── SEQCONN.H
    ├── SESSION.H
    ├── SHAPEBTN.CPP
    ├── SHAPEBTN.H
    ├── SIDEBAR.CPP
    ├── SIDEBAR.H
    ├── SIDEBARGlyphx.CPP
    ├── SIDEBARGlyphx.H
    ├── SLIDER.CPP
    ├── SLIDER.H
    ├── SMUDGE.CPP
    ├── SMUDGE.H
    ├── SOUNDDLG.CPP
    ├── SOUNDDLG.H
    ├── SPECIAL.CPP
    ├── SPECIAL.H
    ├── STAGE.H
    ├── STARTUP.CPP
    ├── STATS.CPP
    ├── SUPER.CPP
    ├── SUPER.H
    ├── SUPPORT.ASM
    ├── Shape.cpp
    ├── TAB.CPP
    ├── TAB.H
    ├── TARCOM.CPP
    ├── TARCOM.H
    ├── TARGET.CPP
    ├── TARGET.H
    ├── TCPIP.CPP
    ├── TCPIP.H
    ├── TDATA.CPP
    ├── TEAM.CPP
    ├── TEAM.H
    ├── TEAMTYPE.CPP
    ├── TEAMTYPE.H
    ├── TECHNO.CPP
    ├── TECHNO.H
    ├── TEMPLATE.CPP
    ├── TEMPLATE.H
    ├── TERRAIN.CPP
    ├── TERRAIN.H
    ├── TEXTBLIT.H
    ├── TEXTBTN.CPP
    ├── TEXTBTN.H
    ├── THEME.CPP
    ├── THEME.H
    ├── TOGGLE.CPP
    ├── TOGGLE.H
    ├── TRIGGER.CPP
    ├── TRIGGER.H
    ├── TURRET.CPP
    ├── TURRET.H
    ├── TXTLABEL.CPP
    ├── TXTLABEL.H
    ├── TXTPRNT.ASM
    ├── TYPE.H
    ├── TiberianDawn.vcxproj
    ├── TiberianDawn.vcxproj.filters
    ├── UDATA.CPP
    ├── UNIT.CPP
    ├── UNIT.H
    ├── UTRACKER.CPP
    ├── UTRACKER.H
    ├── VECTOR.CPP
    ├── VECTOR.H
    ├── VISUDLG.CPP
    ├── VISUDLG.H
    ├── WATCOM.H
    ├── WIN32LIB/
    │   ├── ALLOC.CPP
    │   ├── AUDIO.H
    │   ├── BUFFER.CPP
    │   ├── BUFFER.H
    │   ├── BUFFGLBL.CPP
    │   ├── DDRAW.CPP
    │   ├── DDRAW.H
    │   ├── DEFINES.H
    │   ├── DESCMGMT.H
    │   ├── DIFFTB.INC
    │   ├── DIPTHONG.CPP
    │   ├── DIPTHONG.H
    │   ├── DPLAY.H
    │   ├── DRAWBUFF.H
    │   ├── DRAWBUFF.INC
    │   ├── DRAWRECT.CPP
    │   ├── DSETUP.H
    │   ├── DSOUND.H
    │   ├── DrawMisc.cpp
    │   ├── EXTERNS.H
    │   ├── FACINGFF.ASM
    │   ├── FACINGFF.h
    │   ├── FASTFILE.H
    │   ├── FILE.H
    │   ├── FILEPCX.H
    │   ├── FILETEMP.H
    │   ├── FONT.CPP
    │   ├── FONT.H
    │   ├── FUNCTION.H
    │   ├── GBUFFER.CPP
    │   ├── GBUFFER.H
    │   ├── GBUFFER.INC
    │   ├── GETSHAPE.CPP
    │   ├── ICONCACH.H
    │   ├── ICONSET.CPP
    │   ├── IFF.CPP
    │   ├── IFF.H
    │   ├── INDEXTB.INC
    │   ├── IRANDOM.CPP
    │   ├── KEYBOARD.CPP
    │   ├── KEYBOARD.H
    │   ├── KEYBOARD.INC
    │   ├── KEYSTRUC.INC
    │   ├── LOAD.CPP
    │   ├── LOADFONT.CPP
    │   ├── LOADPAL.CPP
    │   ├── MCGAPRIM.INC
    │   ├── MEM.CPP
    │   ├── MEMFLAG.H
    │   ├── MISC.H
    │   ├── MODEMREG.H
    │   ├── MONO.H
    │   ├── MORPHPAL.CPP
    │   ├── MOUSE.H
    │   ├── MOUSE.INC
    │   ├── MOUSEWW.CPP
    │   ├── NEWDEL.CPP
    │   ├── NYBBTB.INC
    │   ├── PALETTE.CPP
    │   ├── PALETTE.H
    │   ├── PLAYCD.H
    │   ├── PROFILE.H
    │   ├── PROFILE.INC
    │   ├── RAWFILE.H
    │   ├── REGIONSZ.CPP
    │   ├── REMAP.ASM
    │   ├── SET_FONT.CPP
    │   ├── SHAPE.H
    │   ├── SHAPE.INC
    │   ├── SOUND.H
    │   ├── SOUNDINT.H
    │   ├── STAMP.INC
    │   ├── STRUCTS.H
    │   ├── SVGAPRIM.INC
    │   ├── TILE.H
    │   ├── TIMER.CPP
    │   ├── TIMER.H
    │   ├── TIMERDWN.CPP
    │   ├── TIMERINI.CPP
    │   ├── TOBUFF.ASM
    │   ├── VIDEO.H
    │   ├── WINCOMM.H
    │   ├── WINDOWS.CPP
    │   ├── WINHIDE.CPP
    │   ├── WRITEPCX.CPP
    │   ├── WSA.CPP
    │   ├── WSA.H
    │   ├── WWFILE.H
    │   ├── WWLIB32.H
    │   ├── WWMEM.H
    │   ├── WWMEM.INC
    │   ├── WWSTD.H
    │   ├── WW_WIN.H
    │   ├── XORDELTA.ASM
    │   ├── _DIPTABL.CPP
    │   └── _FILE.H
    ├── WINASM.ASM
    ├── WINSTUB.CPP
    ├── WWALLOC.H
    └── WWFILE.H
Download .txt
Showing preview only (618K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (6281 symbols across 556 files)

FILE: CnCTDRAMapEditor/Controls/BasicSettings.Designer.cs
  class BasicSettings (line 17) | partial class BasicSettings
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/BasicSettings.cs
  class BasicSettings (line 23) | public partial class BasicSettings : UserControl
    method BasicSettings (line 25) | public BasicSettings(IGamePlugin plugin, dynamic basicSection)
    method isSinglePlayerCheckBox_CheckedChanged (line 74) | private void isSinglePlayerCheckBox_CheckedChanged(object sender, Even...

FILE: CnCTDRAMapEditor/Controls/BriefingSettings.Designer.cs
  class BriefingSettings (line 17) | partial class BriefingSettings
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/BriefingSettings.cs
  class BriefingSettings (line 20) | public partial class BriefingSettings : UserControl
    method BriefingSettings (line 22) | public BriefingSettings(IGamePlugin plugin, dynamic briefingSection)

FILE: CnCTDRAMapEditor/Controls/ImageTooltip.Designer.cs
  class ImageTooltip (line 17) | partial class ImageTooltip
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/ImageTooltip.cs
  class ImageTooltip (line 21) | public partial class ImageTooltip : ToolTip
    method ImageTooltip (line 25) | public ImageTooltip()
    method ImageTooltip_Popup (line 34) | private void ImageTooltip_Popup(object sender, PopupEventArgs e)
    method ImageTooltip_Draw (line 56) | private void ImageTooltip_Draw(object sender, DrawToolTipEventArgs e)

FILE: CnCTDRAMapEditor/Controls/MapPanel.Designer.cs
  class MapPanel (line 17) | partial class MapPanel
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/MapPanel.cs
  class MapPanel (line 30) | public partial class MapPanel : Panel
    method MapPanel (line 143) | public MapPanel()
    method MapToClient (line 149) | public Point MapToClient(Point point)
    method MapToClient (line 156) | public Size MapToClient(Size size)
    method MapToClient (line 163) | public Rectangle MapToClient(Rectangle rectangle)
    method ClientToMap (line 170) | public Point ClientToMap(Point point)
    method ClientToMap (line 177) | public Size ClientToMap(Size size)
    method ClientToMap (line 184) | public Rectangle ClientToMap(Rectangle rectangle)
    method Invalidate (line 191) | public void Invalidate(Map invalidateMap)
    method Invalidate (line 201) | public void Invalidate(Map invalidateMap, Rectangle cellBounds)
    method Invalidate (line 218) | public void Invalidate(Map invalidateMap, IEnumerable<Rectangle> cellB...
    method Invalidate (line 235) | public void Invalidate(Map invalidateMap, Point location)
    method Invalidate (line 245) | public void Invalidate(Map invalidateMap, IEnumerable<Point> locations)
    method Invalidate (line 255) | public void Invalidate(Map invalidateMap, int cell)
    method Invalidate (line 268) | public void Invalidate(Map invalidateMap, IEnumerable<int> cells)
    method Invalidate (line 285) | public void Invalidate(Map invalidateMap, ICellOverlapper overlapper)
    method OnMouseEnter (line 299) | protected override void OnMouseEnter(EventArgs e)
    method OnMouseWheel (line 309) | protected override void OnMouseWheel(MouseEventArgs e)
    method OnClientSizeChanged (line 314) | protected override void OnClientSizeChanged(EventArgs e)
    method OnScroll (line 321) | protected override void OnScroll(ScrollEventArgs se)
    method OnPaintBackground (line 328) | protected override void OnPaintBackground(PaintEventArgs e)
    method OnPaint (line 335) | protected override void OnPaint(PaintEventArgs pe)
    method UpdateCamera (line 381) | private void UpdateCamera()
    method RecalculateTransforms (line 470) | private void RecalculateTransforms()
    method InvalidateScroll (line 489) | private void InvalidateScroll()
    method SendMessage (line 520) | [DllImport("user32.dll")]
    method SuspendDrawing (line 525) | private void SuspendDrawing()
    method ResumeDrawing (line 530) | private void ResumeDrawing()

FILE: CnCTDRAMapEditor/Controls/MenuButton.Designer.cs
  class MenuButton (line 17) | partial class MenuButton
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/MenuButton.cs
  class MenuButton (line 22) | public partial class MenuButton : Button
    method MenuButton (line 32) | public MenuButton()
    method OnMouseDown (line 37) | protected override void OnMouseDown(MouseEventArgs mevent)
    method OnPaint (line 51) | protected override void OnPaint(PaintEventArgs pevent)

FILE: CnCTDRAMapEditor/Controls/ObjectProperties.Designer.cs
  class ObjectProperties (line 17) | partial class ObjectProperties
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/ObjectProperties.cs
  class ObjectProperties (line 27) | public partial class ObjectProperties : UserControl
    method ObjectProperties (line 58) | public ObjectProperties()
    method Initialize (line 63) | public void Initialize(IGamePlugin plugin, bool isMockObject)
    method Triggers_CollectionChanged (line 82) | private void Triggers_CollectionChanged(object sender, NotifyCollectio...
    method UpdateDataSource (line 87) | private void UpdateDataSource()
    method Rebind (line 92) | private void Rebind()
    method Obj_PropertyChanged (line 176) | private void Obj_PropertyChanged(object sender, PropertyChangedEventAr...
    method comboBox_SelectedValueChanged (line 213) | private void comboBox_SelectedValueChanged(object sender, EventArgs e)
    method nud_ValueChanged (line 221) | private void nud_ValueChanged(object sender, EventArgs e)
    method checkBox_CheckedChanged (line 229) | private void checkBox_CheckedChanged(object sender, EventArgs e)
  class ObjectPropertiesPopup (line 238) | public class ObjectPropertiesPopup : ToolStripDropDown
    method ObjectPropertiesPopup (line 244) | public ObjectPropertiesPopup(IGamePlugin plugin, INotifyPropertyChange...
    method OnClosed (line 265) | protected override void OnClosed(ToolStripDropDownClosedEventArgs e)

FILE: CnCTDRAMapEditor/Controls/PlayerSettings.Designer.cs
  class PlayerSettings (line 17) | partial class PlayerSettings
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/PlayerSettings.cs
  class PlayerSettings (line 26) | public partial class PlayerSettings : UserControl
    method PlayerSettings (line 31) | public PlayerSettings(IGamePlugin plugin, PropertyTracker<House> house...
    method playersListBox_SelectedIndexChanged (line 76) | private void playersListBox_SelectedIndexChanged(object sender, EventA...

FILE: CnCTDRAMapEditor/Controls/PropertiesComboBox.Designer.cs
  class PropertiesComboBox (line 17) | partial class PropertiesComboBox
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/PropertiesComboBox.cs
  class PropertiesComboBox (line 20) | public partial class PropertiesComboBox : ComboBox
    method PropertiesComboBox (line 37) | public PropertiesComboBox()
    method OnDropDownClosed (line 42) | protected override void OnDropDownClosed(EventArgs e)
    method OnDropDown (line 53) | protected override void OnDropDown(EventArgs e)

FILE: CnCTDRAMapEditor/Controls/TerrainProperties.Designer.cs
  class TerrainProperties (line 17) | partial class TerrainProperties
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/TerrainProperties.cs
  class TerrainProperties (line 27) | public partial class TerrainProperties : UserControl
    method TerrainProperties (line 47) | public TerrainProperties()
    method Initialize (line 52) | public void Initialize(IGamePlugin plugin, bool isMockObject)
    method Triggers_CollectionChanged (line 68) | private void Triggers_CollectionChanged(object sender, System.Collecti...
    method UpdateDataSource (line 73) | private void UpdateDataSource()
    method Rebind (line 78) | private void Rebind()
    method Obj_PropertyChanged (line 90) | private void Obj_PropertyChanged(object sender, PropertyChangedEventAr...
    method comboBox_SelectedValueChanged (line 107) | private void comboBox_SelectedValueChanged(object sender, EventArgs e)
    method nud_ValueChanged (line 115) | private void nud_ValueChanged(object sender, EventArgs e)
  class TerrainPropertiesPopup (line 124) | public class TerrainPropertiesPopup : ToolStripDropDown
    method TerrainPropertiesPopup (line 130) | public TerrainPropertiesPopup(IGamePlugin plugin, Terrain terrain)
    method OnClosed (line 151) | protected override void OnClosed(ToolStripDropDownClosedEventArgs e)

FILE: CnCTDRAMapEditor/Controls/TypeComboBox.Designer.cs
  class TypeComboBox (line 17) | partial class TypeComboBox
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Controls/TypeComboBox.cs
  class TypeComboBox (line 27) | public partial class TypeComboBox : ComboBox
    method TypeComboBox (line 45) | public TypeComboBox()
    method OnMeasureItem (line 53) | protected override void OnMeasureItem(MeasureItemEventArgs e)
    method OnDrawItem (line 64) | protected override void OnDrawItem(DrawItemEventArgs e)

FILE: CnCTDRAMapEditor/Dialogs/ErrorMessageBox.Designer.cs
  class ErrorMessageBox (line 17) | partial class ErrorMessageBox
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Dialogs/ErrorMessageBox.cs
  class ErrorMessageBox (line 27) | public partial class ErrorMessageBox : Form
    method ErrorMessageBox (line 45) | public ErrorMessageBox()
    method btnCopy_Click (line 50) | private void btnCopy_Click(object sender, EventArgs e)

FILE: CnCTDRAMapEditor/Dialogs/InviteMessageBox.Designer.cs
  class InviteMessageBox (line 17) | partial class InviteMessageBox
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Dialogs/InviteMessageBox.cs
  class InviteMessageBox (line 21) | public partial class InviteMessageBox : Form
    method InviteMessageBox (line 25) | public InviteMessageBox()
    method InviteMessageBox_Load (line 30) | private void InviteMessageBox_Load(object sender, EventArgs e)

FILE: CnCTDRAMapEditor/Dialogs/MapSettingsDialog.Designer.cs
  class MapSettingsDialog (line 17) | partial class MapSettingsDialog
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Dialogs/MapSettingsDialog.cs
  class MapSettingsDialog (line 29) | public partial class MapSettingsDialog : Form
    method SendMessage (line 36) | [DllImport("user32.dll")]
    type TVITEM (line 39) | private struct TVITEM
    method MapSettingsDialog (line 60) | public MapSettingsDialog(IGamePlugin plugin, PropertyTracker<BasicSect...
    method settingsTreeView_AfterSelect (line 87) | private void settingsTreeView_AfterSelect(object sender, TreeViewEvent...
    method settingsTreeView_DrawNode (line 115) | private void settingsTreeView_DrawNode(object sender, DrawTreeNodeEven...
    method HideCheckBox (line 128) | private void HideCheckBox(TreeNode node)
    method settingsTreeView_AfterCheck (line 148) | private void settingsTreeView_AfterCheck(object sender, TreeViewEventA...

FILE: CnCTDRAMapEditor/Dialogs/NewMapDialog.Designer.cs
  class NewMapDialog (line 17) | partial class NewMapDialog
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Dialogs/NewMapDialog.cs
  class NewMapDialog (line 21) | public partial class NewMapDialog : Form
    method NewMapDialog (line 48) | public NewMapDialog()
    method UpdateGameType (line 53) | private void UpdateGameType()
    method radioGameType_CheckedChanged (line 73) | private void radioGameType_CheckedChanged(object sender, EventArgs e)

FILE: CnCTDRAMapEditor/Dialogs/SteamDialog.Designer.cs
  class SteamDialog (line 17) | partial class SteamDialog
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Dialogs/SteamDialog.cs
  class SteamDialog (line 30) | public partial class SteamDialog : Form
    method SteamDialog (line 37) | public SteamDialog(IGamePlugin plugin)
    method OnLoad (line 56) | protected override void OnLoad(EventArgs e)
    method StatusUpdateTimer_Tick (line 89) | private void StatusUpdateTimer_Tick(object sender, EventArgs e)
    method OnClosed (line 98) | protected override void OnClosed(EventArgs e)
    method OnPublishSuccess (line 106) | protected virtual void OnPublishSuccess()
    method OnOperationFailed (line 112) | protected virtual void OnOperationFailed(string status)
    method EnableControls (line 118) | private void EnableControls(bool enable)
    method btnGoToSteam_Click (line 129) | private void btnGoToSteam_Click(object sender, EventArgs e)
    method btnPublishMap_Click (line 138) | private void btnPublishMap_Click(object sender, EventArgs e)
    method previewBtn_Click (line 189) | private void previewBtn_Click(object sender, EventArgs e)
    method publishAsNewToolStripMenuItem_Click (line 210) | private void publishAsNewToolStripMenuItem_Click(object sender, EventA...
    method previewTxt_TextChanged (line 216) | private void previewTxt_TextChanged(object sender, EventArgs e)
    method descriptionTxt_TextChanged (line 243) | private void descriptionTxt_TextChanged(object sender, EventArgs e)
    method UpdateControls (line 248) | private void UpdateControls()

FILE: CnCTDRAMapEditor/Dialogs/TeamTypesDialog.Designer.cs
  class TeamTypesDialog (line 17) | partial class TeamTypesDialog
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Dialogs/TeamTypesDialog.cs
  class TeamTypesDialog (line 26) | public partial class TeamTypesDialog : Form
    method TeamTypesDialog (line 44) | public TeamTypesDialog(IGamePlugin plugin, int maxTeams)
    method teamTypesListView_SelectedIndexChanged (line 92) | private void teamTypesListView_SelectedIndexChanged(object sender, Eve...
    method teamTypesListView_MouseDown (line 148) | private void teamTypesListView_MouseDown(object sender, MouseEventArgs e)
    method teamTypesListView_KeyDown (line 166) | private void teamTypesListView_KeyDown(object sender, KeyEventArgs e)
    method addTeamTypeToolStripMenuItem_Click (line 174) | private void addTeamTypeToolStripMenuItem_Click(object sender, EventAr...
    method removeTeamTypeToolStripMenuItem_Click (line 200) | private void removeTeamTypeToolStripMenuItem_Click(object sender, Even...
    method teamTypesListView_AfterLabelEdit (line 209) | private void teamTypesListView_AfterLabelEdit(object sender, LabelEdit...
    method teamsDataGridView_CellValueNeeded (line 243) | private void teamsDataGridView_CellValueNeeded(object sender, DataGrid...
    method teamsDataGridView_CellValuePushed (line 276) | private void teamsDataGridView_CellValuePushed(object sender, DataGrid...
    method teamsDataGridView_NewRowNeeded (line 302) | private void teamsDataGridView_NewRowNeeded(object sender, DataGridVie...
    method teamsDataGridView_RowValidated (line 308) | private void teamsDataGridView_RowValidated(object sender, DataGridVie...
    method teamsDataGridView_RowDirtyStateNeeded (line 329) | private void teamsDataGridView_RowDirtyStateNeeded(object sender, Ques...
    method teamsDataGridView_CancelRowEdit (line 334) | private void teamsDataGridView_CancelRowEdit(object sender, QuestionEv...
    method teamsDataGridView_UserDeletingRow (line 347) | private void teamsDataGridView_UserDeletingRow(object sender, DataGrid...
    method teamsDataGridView_UserAddedRow (line 361) | private void teamsDataGridView_UserAddedRow(object sender, DataGridVie...
    method teamsDataGridView_UserDeletedRow (line 366) | private void teamsDataGridView_UserDeletedRow(object sender, DataGridV...
    method missionsDataGridView_CellValueNeeded (line 371) | private void missionsDataGridView_CellValueNeeded(object sender, DataG...
    method missionsDataGridView_CellValuePushed (line 404) | private void missionsDataGridView_CellValuePushed(object sender, DataG...
    method missionsDataGridView_NewRowNeeded (line 430) | private void missionsDataGridView_NewRowNeeded(object sender, DataGrid...
    method missionsDataGridView_RowValidated (line 436) | private void missionsDataGridView_RowValidated(object sender, DataGrid...
    method missionsDataGridView_RowDirtyStateNeeded (line 457) | private void missionsDataGridView_RowDirtyStateNeeded(object sender, Q...
    method missionsDataGridView_CancelRowEdit (line 462) | private void missionsDataGridView_CancelRowEdit(object sender, Questio...
    method missionsDataGridView_UserDeletingRow (line 475) | private void missionsDataGridView_UserDeletingRow(object sender, DataG...
    method missionsDataGridView_UserAddedRow (line 489) | private void missionsDataGridView_UserAddedRow(object sender, DataGrid...
    method missionsDataGridView_UserDeletedRow (line 494) | private void missionsDataGridView_UserDeletedRow(object sender, DataGr...
    method updateDataGridViewAddRows (line 499) | private void updateDataGridViewAddRows(DataGridView dataGridView, int ...

FILE: CnCTDRAMapEditor/Dialogs/TriggersDialog.Designer.cs
  class TriggersDialog (line 17) | partial class TriggersDialog
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 43) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/Dialogs/TriggersDialog.cs
  class TriggersDialog (line 26) | public partial class TriggersDialog : Form
    method TriggersDialog (line 38) | public TriggersDialog(IGamePlugin plugin, int maxTriggers)
    method triggersListView_SelectedIndexChanged (line 110) | private void triggersListView_SelectedIndexChanged(object sender, Even...
    method teamTypesListView_MouseDown (line 157) | private void teamTypesListView_MouseDown(object sender, MouseEventArgs e)
    method teamTypesListView_KeyDown (line 175) | private void teamTypesListView_KeyDown(object sender, KeyEventArgs e)
    method addTriggerToolStripMenuItem_Click (line 183) | private void addTriggerToolStripMenuItem_Click(object sender, EventArg...
    method removeTriggerToolStripMenuItem_Click (line 209) | private void removeTriggerToolStripMenuItem_Click(object sender, Event...
    method teamTypesListView_AfterLabelEdit (line 218) | private void teamTypesListView_AfterLabelEdit(object sender, LabelEdit...
    method typeComboBox_SelectedValueChanged (line 252) | private void typeComboBox_SelectedValueChanged(object sender, EventArg...
    method trigger1ComboBox_SelectedIndexChanged (line 261) | private void trigger1ComboBox_SelectedIndexChanged(object sender, Even...
    method trigger2ComboBox_SelectedIndexChanged (line 269) | private void trigger2ComboBox_SelectedIndexChanged(object sender, Even...
    method UpdateTriggerControls (line 277) | private void UpdateTriggerControls(Trigger trigger, TriggerEvent trigg...

FILE: CnCTDRAMapEditor/Event/RenderEventArgs.cs
  class RenderEventArgs (line 21) | public class RenderEventArgs : EventArgs
    method RenderEventArgs (line 27) | public RenderEventArgs(Graphics graphics, ISet<Point> cells)

FILE: CnCTDRAMapEditor/Event/UndoRedoEventArgs.cs
  class UndoRedoEventArgs (line 20) | public class UndoRedoEventArgs
    method UndoRedoEventArgs (line 26) | public UndoRedoEventArgs(MapPanel mapPanel, Map map)

FILE: CnCTDRAMapEditor/Globals.cs
  class Globals (line 22) | public static class Globals
    method Globals (line 24) | static Globals()
    class Developer (line 66) | public static class Developer

FILE: CnCTDRAMapEditor/Interface/IBrowsableType.cs
  type IBrowsableType (line 19) | public interface IBrowsableType

FILE: CnCTDRAMapEditor/Interface/ICellOccupier.cs
  type ICellOccupier (line 17) | public interface ICellOccupier

FILE: CnCTDRAMapEditor/Interface/ICellOverlapper.cs
  type ICellOverlapper (line 19) | public interface ICellOverlapper

FILE: CnCTDRAMapEditor/Interface/IGamePlugin.cs
  type FileType (line 24) | public enum FileType
  type GameType (line 33) | public enum GameType
  type IGamePlugin (line 40) | public interface IGamePlugin : IDisposable
    method New (line 50) | void New(string theater);
    method Load (line 52) | IEnumerable<string> Load(string path, FileType fileType);
    method Save (line 54) | bool Save(string path, FileType fileType);

FILE: CnCTDRAMapEditor/Interface/INamedType.cs
  type INamedType (line 17) | public interface INamedType

FILE: CnCTDRAMapEditor/Interface/ITechnoType.cs
  type ITechnoType (line 17) | public interface ITechnoType

FILE: CnCTDRAMapEditor/Interface/ITool.cs
  type ITool (line 25) | public interface ITool : IDisposable

FILE: CnCTDRAMapEditor/Interface/IWidget.cs
  type IWidget (line 24) | public interface IWidget : IDisposable
    method Render (line 26) | void Render(Graphics graphics);

FILE: CnCTDRAMapEditor/MainForm.Designer.cs
  class MainForm (line 17) | partial class MainForm
    method Dispose (line 28) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 44) | private void InitializeComponent()

FILE: CnCTDRAMapEditor/MainForm.cs
  class MainForm (line 36) | public partial class MainForm : Form
    type ToolType (line 38) | [Flags]
    method MainForm (line 109) | static MainForm()
    method MainForm (line 114) | public MainForm()
    method SteamUpdateTimer_Tick (line 140) | private void SteamUpdateTimer_Tick(object sender, EventArgs e)
    method OnLoad (line 148) | protected override void OnLoad(EventArgs e)
    method OnClosed (line 160) | protected override void OnClosed(EventArgs e)
    method ProcessCmdKey (line 168) | protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    method UpdateUndoRedo (line 245) | private void UpdateUndoRedo()
    method UndoRedo_Updated (line 251) | private void UndoRedo_Updated(object sender, EventArgs e)
    method fileNewMenuItem_Click (line 256) | private void fileNewMenuItem_Click(object sender, EventArgs e)
    method fileOpenMenuItem_Click (line 311) | private void fileOpenMenuItem_Click(object sender, EventArgs e)
    method fileSaveMenuItem_Click (line 365) | private void fileSaveMenuItem_Click(object sender, EventArgs e)
    method fileSaveAsMenuItem_Click (line 390) | private void fileSaveAsMenuItem_Click(object sender, EventArgs e)
    method fileExportMenuItem_Click (line 436) | private void fileExportMenuItem_Click(object sender, EventArgs e)
    method fileExitMenuItem_Click (line 455) | private void fileExitMenuItem_Click(object sender, EventArgs e)
    method editUndoMenuItem_Click (line 460) | private void editUndoMenuItem_Click(object sender, EventArgs e)
    method editRedoMenuItem_Click (line 468) | private void editRedoMenuItem_Click(object sender, EventArgs e)
    method settingsMapSettingsMenuItem_Click (line 476) | private void settingsMapSettingsMenuItem_Click(object sender, EventArg...
    method settingsTeamTypesMenuItem_Click (line 500) | private void settingsTeamTypesMenuItem_Click(object sender, EventArgs e)
    method settingsTriggersMenuItem_Click (line 531) | private void settingsTriggersMenuItem_Click(object sender, EventArgs e)
    method Mru_FileSelected (line 598) | private void Mru_FileSelected(object sender, FileInfo e)
    method mapPanel_MouseMove (line 616) | private void mapPanel_MouseMove(object sender, MouseEventArgs e)
    method LoadFile (line 692) | private bool LoadFile(string loadFilename)
    method SaveFile (line 832) | private bool SaveFile(string saveFilename)
    method RefreshAvailableTools (line 873) | private void RefreshAvailableTools()
    method ClearActiveTool (line 907) | private void ClearActiveTool()
    method RefreshActiveTool (line 922) | private void RefreshActiveTool()
    method clampActiveToolForm (line 1115) | private void clampActiveToolForm()
    method ActiveToolForm_ResizeEnd (line 1143) | private void ActiveToolForm_ResizeEnd(object sender, EventArgs e)
    method Triggers_CollectionChanged (line 1148) | private void Triggers_CollectionChanged(object sender, System.Collecti...
    method mainToolStripButton_Click (line 1153) | private void mainToolStripButton_Click(object sender, EventArgs e)
    method UpdateVisibleLayers (line 1206) | private void UpdateVisibleLayers()
    method viewLayersMenuItem_CheckedChanged (line 1236) | private void viewLayersMenuItem_CheckedChanged(object sender, EventArg...
    method toolTabControl_Selected (line 1241) | private void toolTabControl_Selected(object sender, TabControlEventArg...
    method developerGenerateMapPreviewMenuItem_Click (line 1249) | private void developerGenerateMapPreviewMenuItem_Click(object sender, ...
    method developerGoToINIMenuItem_Click (line 1261) | private void developerGoToINIMenuItem_Click(object sender, EventArgs e)
    method developerGenerateMapPreviewDirectoryMenuItem_Click (line 1287) | private void developerGenerateMapPreviewDirectoryMenuItem_Click(object...
    method developerDebugShowOverlapCellsMenuItem_CheckedChanged (line 1336) | private void developerDebugShowOverlapCellsMenuItem_CheckedChanged(obj...
    method filePublishMenuItem_Click (line 1343) | private void filePublishMenuItem_Click(object sender, EventArgs e)
    method mainToolStrip_MouseMove (line 1374) | private void mainToolStrip_MouseMove(object sender, MouseEventArgs e)
    method MainForm_FormClosing (line 1379) | private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
    method PromptSaveMap (line 1384) | private bool PromptSaveMap()

FILE: CnCTDRAMapEditor/Model/BasicSection.cs
  class BooleanTypeConverter (line 24) | public class BooleanTypeConverter : TypeConverter
    method CanConvertFrom (line 26) | public override bool CanConvertFrom(ITypeDescriptorContext context, Ty...
    method CanConvertTo (line 31) | public override bool CanConvertTo(ITypeDescriptorContext context, Type...
    method ConvertTo (line 36) | public override object ConvertTo(ITypeDescriptorContext context, Cultu...
    method ConvertFrom (line 46) | public override object ConvertFrom(ITypeDescriptorContext context, Cul...
  class PercentageTypeConverter (line 58) | public class PercentageTypeConverter : TypeConverter
    method CanConvertFrom (line 60) | public override bool CanConvertFrom(ITypeDescriptorContext context, Ty...
    method CanConvertTo (line 65) | public override bool CanConvertTo(ITypeDescriptorContext context, Type...
    method ConvertTo (line 70) | public override object ConvertTo(ITypeDescriptorContext context, Cultu...
    method ConvertFrom (line 81) | public override object ConvertFrom(ITypeDescriptorContext context, Cul...
  class BasicSection (line 108) | public class BasicSection : INotifyPropertyChanged
    method SetField (line 172) | protected bool SetField<T>(ref T field, T value, [CallerMemberName] st...
    method OnPropertyChanged (line 183) | protected void OnPropertyChanged(string propertyName) => PropertyChang...

FILE: CnCTDRAMapEditor/Model/BriefingSection.cs
  class BriefingSection (line 19) | public class BriefingSection

FILE: CnCTDRAMapEditor/Model/Building.cs
  class Building (line 24) | public class Building : ICellOverlapper, ICellOccupier, INotifyPropertyC...
    method Clone (line 68) | public Building Clone()
    method SetField (line 85) | protected bool SetField<T>(ref T field, T value, [CallerMemberName] st...
    method OnPropertyChanged (line 96) | protected void OnPropertyChanged(string propertyName) => PropertyChang...
    method Clone (line 98) | object ICloneable.Clone()

FILE: CnCTDRAMapEditor/Model/BuildingType.cs
  class BuildingType (line 22) | public class BuildingType : ICellOverlapper, ICellOccupier, ITechnoType,...
    method BuildingType (line 54) | public BuildingType(sbyte id, string name, string textId, bool[,] occu...
    method BuildingType (line 91) | public BuildingType(sbyte id, string name, string textId, bool[,] occu...
    method BuildingType (line 96) | public BuildingType(sbyte id, string name, string textId, bool[,] occu...
    method BuildingType (line 101) | public BuildingType(sbyte id, string name, string textId, bool[,] occu...
    method BuildingType (line 106) | public BuildingType(sbyte id, string name, string textId, bool[,] occu...
    method BuildingType (line 111) | public BuildingType(sbyte id, string name, string textId, bool[,] occu...
    method Equals (line 116) | public override bool Equals(object obj)
    method GetHashCode (line 134) | public override int GetHashCode()
    method ToString (line 139) | public override string ToString()
    method Init (line 144) | public void Init(GameType gameType, TheaterType theater, HouseType hou...

FILE: CnCTDRAMapEditor/Model/CellGrid.cs
  type FacingType (line 22) | public enum FacingType
  class CellChangedEventArgs (line 35) | public class CellChangedEventArgs<T> : EventArgs
    method CellChangedEventArgs (line 45) | public CellChangedEventArgs(CellMetrics metrics, int cell, T oldValue,...
    method CellChangedEventArgs (line 53) | public CellChangedEventArgs(CellMetrics metrics, Point location, T old...
  class CellGrid (line 62) | public class CellGrid<T> : IEnumerable<(int Cell, T Value)>, IEnumerable
    method CellGrid (line 92) | public CellGrid(CellMetrics metrics)
    method Clear (line 99) | public void Clear()
    method Adjacent (line 105) | public T Adjacent(Point location, FacingType facing)
    method Adjacent (line 110) | public T Adjacent(int cell, FacingType facing)
    method CopyTo (line 120) | public bool CopyTo(CellGrid<T> other)
    method OnCellChanged (line 135) | protected virtual void OnCellChanged(CellChangedEventArgs<T> e)
    method OnCleared (line 140) | protected virtual void OnCleared()
    method IntersectsWith (line 145) | public IEnumerable<(int Cell, T Value)> IntersectsWith(ISet<int> cells)
    method IntersectsWith (line 160) | public IEnumerable<(int Cell, T Value)> IntersectsWith(ISet<Point> loc...
    method GetEnumerator (line 176) | public IEnumerator<(int Cell, T Value)> GetEnumerator()
    method GetEnumerator (line 188) | IEnumerator IEnumerable.GetEnumerator()

FILE: CnCTDRAMapEditor/Model/CellMetrics.cs
  class CellMetrics (line 24) | public class CellMetrics
    method Contains (line 42) | public bool Contains(Point location) => ((location.X >= 0) && (locatio...
    method Contains (line 44) | public bool Contains(int cell) => ((cell >= 0) && (cell < Length));
    method CellMetrics (line 46) | public CellMetrics(int width, int height)
    method CellMetrics (line 52) | public CellMetrics(Size size)
    method GetCell (line 57) | public bool GetCell(Point location, out int cell)
    method GetLocation (line 63) | public bool GetLocation(int cell, out Point location)
    method Adjacent (line 69) | public bool Adjacent(Point location, FacingType facing, out Point adja...
    method Adjacent (line 107) | public bool Adjacent(int cell, FacingType facing, out int adjacent)
    method Clip (line 120) | public void Clip(ref Point location)
    method Clip (line 126) | public void Clip(ref Point location, Size margin)
    method Clip (line 131) | public void Clip(ref Point location, Size topLeftMargin, Size bottomRi...

FILE: CnCTDRAMapEditor/Model/CellTrigger.cs
  class CellTrigger (line 17) | public class CellTrigger

FILE: CnCTDRAMapEditor/Model/DirectionType.cs
  class DirectionType (line 19) | public class DirectionType
    method DirectionType (line 27) | public DirectionType(byte id, string name, FacingType facing)
    method DirectionType (line 34) | public DirectionType(byte id, string name)
    method Equals (line 39) | public override bool Equals(object obj)
    method GetHashCode (line 61) | public override int GetHashCode()
    method ToString (line 66) | public override string ToString()

FILE: CnCTDRAMapEditor/Model/House.cs
  type AlliesMask (line 25) | public struct AlliesMask : IEnumerable<int>
    method AlliesMask (line 29) | public AlliesMask(int value)
    method Set (line 34) | public void Set(int id)
    method Clear (line 44) | public void Clear(int id)
    method Equals (line 54) | public override bool Equals(object obj)
    method GetHashCode (line 59) | public override int GetHashCode()
    method ToString (line 64) | public override string ToString()
    method GetEnumerator (line 69) | public IEnumerator<int> GetEnumerator()
    method GetEnumerator (line 80) | IEnumerator IEnumerable.GetEnumerator()
  class AlliesMaskTypeConverter (line 86) | public class AlliesMaskTypeConverter : TypeConverter
    method CanConvertFrom (line 88) | public override bool CanConvertFrom(ITypeDescriptorContext context, Ty...
    method CanConvertTo (line 93) | public override bool CanConvertTo(ITypeDescriptorContext context, Type...
    method ConvertTo (line 98) | public override object ConvertTo(ITypeDescriptorContext context, Cultu...
    method ConvertFrom (line 120) | public override object ConvertFrom(ITypeDescriptorContext context, Cul...
  class House (line 143) | public class House
    method House (line 166) | public House(HouseType type)

FILE: CnCTDRAMapEditor/Model/HouseType.cs
  class HouseType (line 23) | public class HouseType
    method HouseType (line 35) | public HouseType(sbyte id, string name, string unitTeamColor, string b...
    method HouseType (line 44) | public HouseType(sbyte id, string name, string teamColor)
    method HouseType (line 49) | public HouseType(sbyte id, string name)
    method Equals (line 54) | public override bool Equals(object obj)
    method GetHashCode (line 72) | public override int GetHashCode()
    method ToString (line 77) | public override string ToString()

FILE: CnCTDRAMapEditor/Model/Infantry.cs
  type InfantryStoppingType (line 26) | public enum InfantryStoppingType
  class Infantry (line 35) | public class Infantry : INotifyPropertyChanged, ICloneable
    method Infantry (line 61) | public Infantry(InfantryGroup infantryGroup)
    method Clone (line 66) | public Infantry Clone()
    method SetField (line 79) | protected bool SetField<T>(ref T field, T value, [CallerMemberName] st...
    method OnPropertyChanged (line 90) | protected void OnPropertyChanged(string propertyName) => PropertyChang...
    method Clone (line 92) | object ICloneable.Clone()
  class InfantryGroup (line 98) | public class InfantryGroup : ICellOverlapper, ICellOccupier
    method InfantryGroup (line 108) | static InfantryGroup()
    method ClosestStoppingTypes (line 117) | public static IEnumerable<InfantryStoppingType> ClosestStoppingTypes(P...

FILE: CnCTDRAMapEditor/Model/InfantryType.cs
  class InfantryType (line 23) | public class InfantryType : ITechnoType, IBrowsableType
    method InfantryType (line 37) | public InfantryType(sbyte id, string name, string textId, string owner...
    method InfantryType (line 45) | public InfantryType(sbyte id, string name, string textId)
    method Equals (line 50) | public override bool Equals(object obj)
    method GetHashCode (line 68) | public override int GetHashCode()
    method ToString (line 73) | public override string ToString()
    method Init (line 78) | public void Init(GameType gameType, TheaterType theater, HouseType hou...

FILE: CnCTDRAMapEditor/Model/Map.cs
  type MapLayerFlag (line 29) | [Flags]
  class MapContext (line 56) | public class MapContext : ITypeDescriptorContext
    method MapContext (line 68) | public MapContext(Map map, bool fractionalPercentages)
    method GetService (line 74) | public object GetService(Type serviceType) => null;
    method OnComponentChanged (line 76) | public void OnComponentChanged() { }
    method OnComponentChanging (line 78) | public bool OnComponentChanging() => true;
  class Map (line 81) | public class Map : ICloneable
    method Map (line 192) | public Map(BasicSection basicSection, TheaterType theater, Size cellSi...
    method BeginUpdate (line 254) | public void BeginUpdate()
    method EndUpdate (line 259) | public void EndUpdate()
    method InitTheater (line 267) | public void InitTheater(GameType gameType)
    method Update (line 305) | private void Update()
    method UpdateResourceOverlays (line 336) | private void UpdateResourceOverlays(ISet<Point> locations)
    method UpdateWallOverlays (line 357) | private void UpdateWallOverlays(ISet<Point> locations)
    method RemoveBibs (line 388) | private void RemoveBibs(Building building)
    method AddBibs (line 398) | private void AddBibs(Point location, Building building)
    method Clone (line 445) | public Map Clone()
    method GeneratePreview (line 498) | public TGA GeneratePreview(Size previewSize, bool sharpen)
    method GenerateMapPreview (line 546) | public TGA GenerateMapPreview()
    method GenerateWorkshopPreview (line 551) | public TGA GenerateWorkshopPreview()
    method Clone (line 556) | object ICloneable.Clone()
    method Overlay_CellChanged (line 561) | private void Overlay_CellChanged(object sender, CellChangedEventArgs<O...
    method Technos_OccupierAdded (line 614) | private void Technos_OccupierAdded(object sender, OccupierAddedEventAr...
    method Technos_OccupierRemoved (line 629) | private void Technos_OccupierRemoved(object sender, OccupierRemovedEve...
    method Buildings_OccupierAdded (line 644) | private void Buildings_OccupierAdded(object sender, OccupierAddedEvent...
    method Buildings_OccupierRemoved (line 657) | private void Buildings_OccupierRemoved(object sender, OccupierRemovedE...
    method Triggers_CollectionChanged (line 667) | private void Triggers_CollectionChanged(object sender, System.Collecti...

FILE: CnCTDRAMapEditor/Model/MapSection.cs
  class TheaterTypeConverter (line 24) | public class TheaterTypeConverter : TypeConverter
    method CanConvertFrom (line 26) | public override bool CanConvertFrom(ITypeDescriptorContext context, Ty...
    method CanConvertTo (line 31) | public override bool CanConvertTo(ITypeDescriptorContext context, Type...
    method ConvertTo (line 36) | public override object ConvertTo(ITypeDescriptorContext context, Cultu...
    method ConvertFrom (line 46) | public override object ConvertFrom(ITypeDescriptorContext context, Cul...
  class MapSection (line 58) | public class MapSection : INotifyPropertyChanged
    method SetField (line 83) | protected bool SetField<T>(ref T field, T value, [CallerMemberName] st...
    method OnPropertyChanged (line 94) | protected void OnPropertyChanged(string propertyName) => PropertyChang...

FILE: CnCTDRAMapEditor/Model/OccupierSet.cs
  class OccupierAddedEventArgs (line 24) | public class OccupierAddedEventArgs<T> : EventArgs
    method OccupierAddedEventArgs (line 32) | public OccupierAddedEventArgs(CellMetrics metrics, int cell, T occupier)
    method OccupierAddedEventArgs (line 39) | public OccupierAddedEventArgs(CellMetrics metrics, Point location, T o...
  class OccupierRemovedEventArgs (line 47) | public class OccupierRemovedEventArgs<T> : EventArgs
    method OccupierRemovedEventArgs (line 55) | public OccupierRemovedEventArgs(CellMetrics metrics, int cell, T occup...
    method OccupierRemovedEventArgs (line 62) | public OccupierRemovedEventArgs(CellMetrics metrics, Point location, T...
  class OccupierSet (line 70) | public class OccupierSet<T> : IEnumerable<(Point Location, T Occupier)>,...
    method OccupierSet (line 90) | public OccupierSet(CellMetrics metrics)
    method CanAdd (line 96) | public bool CanAdd(Point location, T occupier, bool[,] occupyMask)
    method CanAdd (line 107) | public bool CanAdd(int x, int y, T occupier, bool[,] occupyMask) => Ca...
    method CanAdd (line 109) | public bool CanAdd(int cell, T occupier, bool[,] occupyMask) => metric...
    method CanAdd (line 111) | public bool CanAdd(Point location, T occupier) => (occupier != null) ?...
    method CanAdd (line 113) | public bool CanAdd(int x, int y, T occupier) => (occupier != null) ? C...
    method CanAdd (line 115) | public bool CanAdd(int cell, T occupier) => (occupier != null) ? CanAd...
    method Add (line 117) | public bool Add(Point location, T occupier, bool[,] occupyMask)
    method Add (line 128) | public bool Add(int x, int y, T occupier, bool[,] occupyMask) => Add(n...
    method Add (line 130) | public bool Add(int cell, T occupier, bool[,] occupyMask) => metrics.G...
    method Add (line 132) | public bool Add(Point location, T occupier) => (occupier != null) ? Ad...
    method Add (line 134) | public bool Add(int x, int y, T occupier) => (occupier != null) ? Add(...
    method Add (line 136) | public bool Add(int cell, T occupier) => (occupier != null) ? Add(cell...
    method Clear (line 138) | public void Clear()
    method Contains (line 145) | public bool Contains(int x, int y) => ((x >= 0) && (x < occupierCells....
    method Contains (line 147) | public bool Contains(Point location) => Contains(location.X, location.Y);
    method Contains (line 149) | public bool Contains(int cell) => metrics.GetLocation(cell, out Point ...
    method Contains (line 151) | public bool Contains(T occupier) => occupiers.ContainsKey(occupier);
    method GetEnumerator (line 153) | public IEnumerator<(Point Location, T Occupier)> GetEnumerator() => oc...
    method Remove (line 155) | public bool Remove(T occupier)
    method Remove (line 167) | public bool Remove(Point location) => Remove(this[location]);
    method Remove (line 169) | public bool Remove(int x, int y) => Remove(new Point(x, y));
    method Remove (line 171) | public bool Remove(int cell) => metrics.GetLocation(cell, out Point lo...
    method OfType (line 173) | public IEnumerable<(Point Location, U Occupier)> OfType<U>() where U :...
    method OnOccupierAdded (line 175) | protected virtual void OnOccupierAdded(OccupierAddedEventArgs<T> e)
    method OnOccupierRemoved (line 180) | protected virtual void OnOccupierRemoved(OccupierRemovedEventArgs<T> e)
    method OnCleared (line 185) | protected virtual void OnCleared()
    method GetEnumerator (line 190) | IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
    method DoAdd (line 192) | private bool DoAdd(Point location, T occupier, bool[,] occupyMask)
    method DoRemove (line 213) | private bool DoRemove(T occupier)
    method GetOccupyPoints (line 234) | private static IEnumerable<Point> GetOccupyPoints(Point location, bool...
    method GetOccupyPoints (line 248) | private static IEnumerable<Point> GetOccupyPoints(Point location, T oc...

FILE: CnCTDRAMapEditor/Model/OverlapperSet.cs
  class OverlapperSet (line 24) | public class OverlapperSet<T> : IEnumerable<(Point Location, T Overlappe...
    method OverlapperSet (line 33) | public OverlapperSet(CellMetrics metrics)
    method Add (line 38) | public bool Add(Point location, T overlapper)
    method Add (line 51) | public bool Add(int x, int y, T occupier) => Add(new Point(x, y), occu...
    method Add (line 53) | public bool Add(int cell, T overlapper) => metrics.GetLocation(cell, o...
    method Clear (line 55) | public void Clear() => overlappers.Clear();
    method Contains (line 57) | public bool Contains(T occupier) => overlappers.ContainsKey(occupier);
    method CopyTo (line 59) | public void CopyTo(OverlapperSet<T> other)
    method GetEnumerator (line 67) | public IEnumerator<(Point Location, T Overlapper)> GetEnumerator() => ...
    method Remove (line 69) | public bool Remove(T overlapper)
    method Overlaps (line 80) | public ISet<Point> Overlaps(IEnumerable<Rectangle> rectangles)
    method Overlaps (line 97) | public ISet<Point> Overlaps(Rectangle rectangle) => Overlaps(rectangle...
    method Overlaps (line 99) | public ISet<Point> Overlaps(IEnumerable<Point> points) => Overlaps(poi...
    method Overlaps (line 101) | public ISet<Point> Overlaps(Point point) => Overlaps(point.Yield());
    method OfType (line 103) | public IEnumerable<(Point Location, U Overlapper)> OfType<U>() where U...
    method GetEnumerator (line 105) | IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();

FILE: CnCTDRAMapEditor/Model/Overlay.cs
  class Overlay (line 20) | public class Overlay : ICellOccupier

FILE: CnCTDRAMapEditor/Model/OverlayType.cs
  type OverlayTypeFlag (line 22) | [Flags]
  class OverlayType (line 33) | public class OverlayType : ICellOccupier, IBrowsableType
    method OverlayType (line 63) | public OverlayType(sbyte id, string name, string textId, TheaterType[]...
    method OverlayType (line 72) | public OverlayType(sbyte id, string name, string textId, OverlayTypeFl...
    method OverlayType (line 77) | public OverlayType(sbyte id, string name, string textId, TheaterType[]...
    method OverlayType (line 82) | public OverlayType(sbyte id, string name, OverlayTypeFlag flag)
    method OverlayType (line 87) | public OverlayType(sbyte id, string name, string textId)
    method Equals (line 92) | public override bool Equals(object obj)
    method GetHashCode (line 110) | public override int GetHashCode()
    method ToString (line 115) | public override string ToString()
    method Init (line 120) | public void Init(TheaterType theater)

FILE: CnCTDRAMapEditor/Model/Smudge.cs
  class Smudge (line 20) | public class Smudge

FILE: CnCTDRAMapEditor/Model/SmudgeType.cs
  type SmudgeTypeFlag (line 22) | [Flags]
  class SmudgeType (line 32) | public class SmudgeType : IBrowsableType
    method SmudgeType (line 48) | public SmudgeType(sbyte id, string name, Size size, SmudgeTypeFlag flag)
    method SmudgeType (line 56) | public SmudgeType(sbyte id, string name, Size size)
    method SmudgeType (line 61) | public SmudgeType(sbyte id, string name)
    method Equals (line 66) | public override bool Equals(object obj)
    method GetHashCode (line 84) | public override int GetHashCode()
    method ToString (line 89) | public override string ToString()
    method Init (line 94) | public void Init(TheaterType theater)

FILE: CnCTDRAMapEditor/Model/SteamSection.cs
  class SteamSection (line 20) | public class SteamSection

FILE: CnCTDRAMapEditor/Model/TeamType.cs
  class TeamTypeClass (line 22) | public class TeamTypeClass : ICloneable
    method Clone (line 28) | public TeamTypeClass Clone()
    method Clone (line 37) | object ICloneable.Clone()
  class TeamTypeMission (line 43) | public class TeamTypeMission : ICloneable
    method Clone (line 49) | public TeamTypeMission Clone()
    method Clone (line 58) | object ICloneable.Clone()
  class TeamType (line 64) | public class TeamType : INamedType, ICloneable
    method Clone (line 102) | public TeamType Clone()
    method Equals (line 129) | public override bool Equals(object obj)
    method GetHashCode (line 143) | public override int GetHashCode()
    method ToString (line 148) | public override string ToString()
    method Clone (line 153) | object ICloneable.Clone()

FILE: CnCTDRAMapEditor/Model/Template.cs
  class Template (line 20) | public class Template : ICellOccupier

FILE: CnCTDRAMapEditor/Model/TemplateType.cs
  type TemplateTypeFlag (line 22) | [Flags]
  class TemplateType (line 31) | public class TemplateType : IBrowsableType
    method TemplateType (line 55) | public TemplateType(ushort id, string name, int iconWidth, int iconHei...
    method TemplateType (line 65) | public TemplateType(ushort id, string name, int iconWidth, int iconHei...
    method Equals (line 70) | public override bool Equals(object obj)
    method GetHashCode (line 92) | public override int GetHashCode()
    method ToString (line 97) | public override string ToString()
    method Init (line 102) | public void Init(TheaterType theater)

FILE: CnCTDRAMapEditor/Model/Terrain.cs
  class Terrain (line 24) | public class Terrain : ICellOverlapper, ICellOccupier, INotifyPropertyCh...
    method Clone (line 43) | public Terrain Clone()
    method SetField (line 53) | protected bool SetField<T>(ref T field, T value, [CallerMemberName] st...
    method OnPropertyChanged (line 64) | protected void OnPropertyChanged(string propertyName) => PropertyChang...
    method Clone (line 66) | object ICloneable.Clone()

FILE: CnCTDRAMapEditor/Model/TerrainType.cs
  class TerrainType (line 22) | public class TerrainType : ICellOverlapper, ICellOccupier, IBrowsableType
    method TerrainType (line 49) | public TerrainType(sbyte id, string name, TheaterType[] theaters, bool...
    method TerrainType (line 59) | public TerrainType(sbyte id, string name, TheaterType[] theaters, bool...
    method TerrainType (line 64) | public TerrainType(sbyte id, string name, TheaterType[] theaters, bool...
    method TerrainType (line 69) | public TerrainType(sbyte id, string name, TheaterType[] theaters, bool...
    method Equals (line 74) | public override bool Equals(object obj)
    method GetHashCode (line 92) | public override int GetHashCode()
    method ToString (line 97) | public override string ToString()
    method Init (line 102) | public void Init(TheaterType theater)

FILE: CnCTDRAMapEditor/Model/TheaterType.cs
  class TheaterType (line 20) | public class TheaterType
    method TheaterType (line 28) | public TheaterType(sbyte id, string name, IEnumerable<string> tilesets)
    method Equals (line 35) | public override bool Equals(object obj)
    method GetHashCode (line 53) | public override int GetHashCode()
    method ToString (line 58) | public override string ToString()

FILE: CnCTDRAMapEditor/Model/Trigger.cs
  type TriggerPersistantType (line 20) | public enum TriggerPersistantType
  type TriggerMultiStyleType (line 27) | public enum TriggerMultiStyleType
  class TriggerEvent (line 35) | public class TriggerEvent : ICloneable
    method Clone (line 45) | public TriggerEvent Clone()
    method Clone (line 55) | object ICloneable.Clone()
  class TriggerAction (line 61) | public class TriggerAction : ICloneable
    method Clone (line 73) | public TriggerAction Clone()
    method Clone (line 84) | object ICloneable.Clone()
  class Trigger (line 90) | public class Trigger : INamedType, ICloneable
    method Clone (line 110) | public Trigger Clone()
    method Equals (line 125) | public override bool Equals(object obj)
    method GetHashCode (line 139) | public override int GetHashCode()
    method ToString (line 144) | public override string ToString()
    method Clone (line 149) | object ICloneable.Clone()

FILE: CnCTDRAMapEditor/Model/TypeItem.cs
  class TypeItem (line 17) | public class TypeItem<T>
    method TypeItem (line 23) | public TypeItem(string name, T type)

FILE: CnCTDRAMapEditor/Model/Unit.cs
  class Unit (line 24) | public class Unit : ICellOverlapper, ICellOccupier, INotifyPropertyChang...
    method Clone (line 52) | public Unit Clone()
    method SetField (line 65) | protected bool SetField<T>(ref T field, T value, [CallerMemberName] st...
    method OnPropertyChanged (line 76) | protected void OnPropertyChanged(string propertyName) => PropertyChang...
    method Clone (line 78) | object ICloneable.Clone()

FILE: CnCTDRAMapEditor/Model/UnitType.cs
  class UnitTypeIDMask (line 23) | public static class UnitTypeIDMask
  class UnitType (line 29) | public class UnitType : ICellOverlapper, ICellOccupier, ITechnoType, IBr...
    method UnitType (line 57) | public UnitType(sbyte id, string name, string textId, string ownerHous...
    method UnitType (line 67) | public UnitType(sbyte id, string name, string textId, string ownerHous...
    method UnitType (line 72) | public UnitType(sbyte id, string name, string textId)
    method UnitType (line 77) | public UnitType(sbyte id, string name, string textId, string ownerHouse)
    method UnitType (line 82) | public UnitType(sbyte id, string name, string textId, bool hasTurret)
    method Equals (line 87) | public override bool Equals(object obj)
    method GetHashCode (line 105) | public override int GetHashCode()
    method ToString (line 110) | public override string ToString()
    method Init (line 115) | public void Init(GameType gameType, TheaterType theater, HouseType hou...

FILE: CnCTDRAMapEditor/Model/Waypoint.cs
  type WaypointFlag (line 20) | public enum WaypointFlag
  class Waypoint (line 26) | public class Waypoint : INamedType
    method Waypoint (line 34) | public Waypoint(string name, WaypointFlag flag)
    method Waypoint (line 40) | public Waypoint(string name)
    method Equals (line 45) | public override bool Equals(object obj)
    method GetHashCode (line 59) | public override int GetHashCode()
    method ToString (line 64) | public override string ToString()

FILE: CnCTDRAMapEditor/Program.cs
  class Program (line 25) | static class Program
    method Main (line 30) | [STAThread]

FILE: CnCTDRAMapEditor/Properties/Resources.Designer.cs
  class Resources (line 36) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 45) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: CnCTDRAMapEditor/Properties/Settings.Designer.cs
  class Settings (line 28) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]

FILE: CnCTDRAMapEditor/RedAlert/ActionDataTypes.cs
  class ActionDataTypes (line 17) | public static class ActionDataTypes
    type ThemeType (line 19) | public enum ThemeType
    type VocType (line 65) | public enum VocType
    type VoxType (line 235) | public enum VoxType
    type SpecialWeaponType (line 356) | public enum SpecialWeaponType
    type QuarryType (line 369) | public enum QuarryType
    type VQType (line 385) | public enum VQType

FILE: CnCTDRAMapEditor/RedAlert/ActionTypes.cs
  class ActionTypes (line 21) | public static class ActionTypes
    method ActionTypes (line 63) | static ActionTypes()
    method GetTypes (line 71) | public static IEnumerable<string> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/BasicSection.cs
  class BasicSection (line 20) | public class BasicSection : Model.BasicSection

FILE: CnCTDRAMapEditor/RedAlert/BuildingTypes.cs
  class BuildingTypes (line 23) | public static class BuildingTypes
    method BuildingTypes (line 91) | static BuildingTypes()
    method GetTypes (line 99) | public static IEnumerable<BuildingType> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/Constants.cs
  class Constants (line 21) | public static class Constants

FILE: CnCTDRAMapEditor/RedAlert/DirectionTypes.cs
  class DirectionTypes (line 22) | public static class DirectionTypes
    method DirectionTypes (line 43) | static DirectionTypes()
    method GetTypes (line 51) | public static IEnumerable<DirectionType> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/EventTypes.cs
  class EventTypes (line 21) | public static class EventTypes
    method EventTypes (line 59) | static EventTypes()
    method GetTypes (line 67) | public static IEnumerable<string> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/GamePlugin.cs
  class GamePlugin (line 30) | class GamePlugin : IGamePlugin
    method GamePlugin (line 173) | static GamePlugin()
    method GamePlugin (line 178) | public GamePlugin(bool mapImage)
    method GamePlugin (line 210) | public GamePlugin()
    method New (line 215) | public void New(string theater)
    method Load (line 226) | public IEnumerable<string> Load(string path, FileType fileType)
    method LoadINI (line 268) | private IEnumerable<string> LoadINI(INI ini)
    method Save (line 1152) | public bool Save(string path, FileType fileType)
    method SaveINI (line 1222) | private void SaveINI(INI ini, FileType fileType)
    method SaveMapPreview (line 1550) | private void SaveMapPreview(Stream stream)
    method SaveJSON (line 1555) | private void SaveJSON(JsonTextWriter writer)
    method Validate (line 1578) | private bool Validate()
    method BasicSection_PropertyChanged (line 1660) | private void BasicSection_PropertyChanged(object sender, PropertyChang...
    method MapSection_PropertyChanged (line 1672) | private void MapSection_PropertyChanged(object sender, PropertyChanged...
    method UpdateBasePlayerHouse (line 1684) | private void UpdateBasePlayerHouse()
    method CompressLCWSection (line 1696) | private void CompressLCWSection(INISection section, byte[] decompresse...
    method DecompressLCWSection (line 1720) | private byte[] DecompressLCWSection(INISection section, int bytesPerCell)
    method Dispose (line 1755) | protected virtual void Dispose(bool disposing)
    method Dispose (line 1767) | public void Dispose()

FILE: CnCTDRAMapEditor/RedAlert/House.cs
  class House (line 19) | public class House : Model.House
    method House (line 21) | public House(Model.HouseType type)

FILE: CnCTDRAMapEditor/RedAlert/HouseTypes.cs
  class HouseTypes (line 22) | public static class HouseTypes
    method HouseTypes (line 47) | static HouseTypes()
    method GetTypes (line 55) | public static IEnumerable<HouseType> GetTypes()
    method GetBasePlayer (line 60) | public static string GetBasePlayer(string player)

FILE: CnCTDRAMapEditor/RedAlert/InfantryTypes.cs
  class InfantryTypes (line 22) | public static class InfantryTypes
    method InfantryTypes (line 53) | static InfantryTypes()
    method GetTypes (line 61) | public static IEnumerable<InfantryType> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/MissionTypes.cs
  class MissionTypes (line 19) | public static class MissionTypes
    method GetTypes (line 48) | public static IEnumerable<string> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/OverlayTypes.cs
  class OverlayTypes (line 22) | public static class OverlayTypes
    method OverlayTypes (line 52) | static OverlayTypes()
    method GetTypes (line 60) | public static IEnumerable<OverlayType> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/SmudgeTypes.cs
  class SmudgeTypes (line 23) | public static class SmudgeTypes
    method SmudgeTypes (line 43) | static SmudgeTypes()
    method GetTypes (line 51) | public static IEnumerable<SmudgeType> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/TeamMissionTypes.cs
  class TeamMissionTypes (line 19) | public static class TeamMissionTypes
    method GetTypes (line 42) | public static IEnumerable<string> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/TemplateTypes.cs
  class TemplateTypes (line 22) | public static class TemplateTypes
    method TemplateTypes (line 428) | static TemplateTypes()
    method GetTypes (line 436) | public static IEnumerable<TemplateType> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/TerrainTypes.cs
  class TerrainTypes (line 22) | public class TerrainTypes
    method TerrainTypes (line 63) | static TerrainTypes()
    method GetTypes (line 71) | public static IEnumerable<TerrainType> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/TheaterTypes.cs
  class TheaterTypes (line 23) | public static class TheaterTypes
    method TheaterTypes (line 33) | static TheaterTypes()
    method GetTypes (line 41) | public static IEnumerable<TheaterType> GetTypes()

FILE: CnCTDRAMapEditor/RedAlert/UnitTypes.cs
  class UnitTypes (line 23) | public static class UnitTypes
    method UnitTypes (line 66) | static UnitTypes()
    method GetTypes (line 74) | public static IEnumerable<UnitType> GetTypes()

FILE: CnCTDRAMapEditor/Render/MapRenderer.cs
  method MapRenderer (line 102) | static MapRenderer()
  method Render (line 107) | public static void Render(GameType gameType, Map map, Graphics graphics,...
  method Render (line 288) | public static void Render(GameType gameType, Map map, Graphics graphics,...
  method Render (line 293) | public static (Rectangle, Action<Graphics>) Render(TheaterType theater, ...
  method Render (line 330) | public static (Rectangle, Action<Graphics>) Render(TheaterType theater, ...
  method Render (line 380) | public static (Rectangle, Action<Graphics>) Render(GameType gameType, Th...
  method Render (line 542) | public static (Rectangle, Action<Graphics>) Render(TheaterType theater, ...
  method Render (line 612) | public static (Rectangle, Action<Graphics>) Render(GameType gameType, Th...

FILE: CnCTDRAMapEditor/Steamworks.NET/CallbackDispatcher.cs
  class CallbackDispatcher (line 54) | public static class CallbackDispatcher {
    method ExceptionHandler (line 58) | public static void ExceptionHandler(Exception e) {
  class Callback (line 67) | public sealed class Callback<T> : IDisposable {
    method Create (line 86) | public static Callback<T> Create(DispatchDelegate func) {
    method CreateGameServer (line 95) | public static Callback<T> CreateGameServer(DispatchDelegate func) {
    method Callback (line 99) | public Callback(DispatchDelegate func, bool bGameServer = false) {
    method Dispose (line 109) | public void Dispose() {
    method Register (line 130) | public void Register(DispatchDelegate func) {
    method Unregister (line 149) | public void Unregister() {
    method SetGameserverFlag (line 154) | public void SetGameserverFlag() {
    method pvParam (line 162) | IntPtr pvParam) {
  class CallResult (line 212) | public sealed class CallResult<T> : IDisposable {
    method Create (line 233) | public static CallResult<T> Create(APIDispatchDelegate func = null) {
    method CallResult (line 237) | public CallResult(APIDispatchDelegate func = null) {
    method Dispose (line 246) | public void Dispose() {
    method Set (line 266) | public void Set(SteamAPICall_t hAPICall, APIDispatchDelegate func = nu...
    method IsActive (line 288) | public bool IsActive() {
    method Cancel (line 292) | public void Cancel() {
    method SetGameserverFlag (line 299) | public void SetGameserverFlag() {
    method PtrToStructure (line 311) | try {
  class CCallbackBase (line 364) | [StructLayout(LayoutKind.Sequential)]
  class CCallbackBaseVTable (line 374) | [StructLayout(LayoutKind.Sequential)]

FILE: CnCTDRAMapEditor/Steamworks.NET/CallbackIdentity.cs
  class CallbackIdentities (line 15) | class CallbackIdentities {
    method GetCallbackIdentity (line 16) | public static int GetCallbackIdentity(System.Type callbackStruct) {
  class CallbackIdentityAttribute (line 26) | [System.AttributeUsage(System.AttributeTargets.Struct, AllowMultiple = f...
    method CallbackIdentityAttribute (line 29) | public CallbackIdentityAttribute(int callbackNum) {

FILE: CnCTDRAMapEditor/Steamworks.NET/ISteamMatchmakingResponses.cs
  class ISteamMatchmakingServerListResponse (line 33) | public class ISteamMatchmakingServerListResponse {
    method ISteamMatchmakingServerListResponse (line 48) | public ISteamMatchmakingServerListResponse(ServerResponded onServerRes...
    method InternalOnServerResponded (line 84) | private void InternalOnServerResponded(HServerListRequest hRequest, in...
    method InternalOnServerFailedToRespond (line 87) | private void InternalOnServerFailedToRespond(HServerListRequest hReque...
    method InternalOnRefreshComplete (line 90) | private void InternalOnRefreshComplete(HServerListRequest hRequest, EM...
    method InternalOnServerResponded (line 100) | private void InternalOnServerResponded(IntPtr thisptr, HServerListRequ...
    method InternalOnServerFailedToRespond (line 103) | private void InternalOnServerFailedToRespond(IntPtr thisptr, HServerLi...
    method InternalOnRefreshComplete (line 106) | private void InternalOnRefreshComplete(IntPtr thisptr, HServerListRequ...
    class VTable (line 111) | [StructLayout(LayoutKind.Sequential)]
  class ISteamMatchmakingPingResponse (line 141) | public class ISteamMatchmakingPingResponse {
    method ISteamMatchmakingPingResponse (line 154) | public ISteamMatchmakingPingResponse(ServerResponded onServerResponded...
    method InternalOnServerResponded (line 186) | private void InternalOnServerResponded(gameserveritem_t server) {
    method InternalOnServerFailedToRespond (line 189) | private void InternalOnServerFailedToRespond() {
    method InternalOnServerResponded (line 197) | private void InternalOnServerResponded(IntPtr thisptr, gameserveritem_...
    method InternalOnServerFailedToRespond (line 200) | private void InternalOnServerFailedToRespond(IntPtr thisptr) {
    class VTable (line 205) | [StructLayout(LayoutKind.Sequential)]
  class ISteamMatchmakingPlayersResponse (line 232) | public class ISteamMatchmakingPlayersResponse {
    method ISteamMatchmakingPlayersResponse (line 251) | public ISteamMatchmakingPlayersResponse(AddPlayerToList onAddPlayerToL...
    method InternalOnAddPlayerToList (line 287) | private void InternalOnAddPlayerToList(IntPtr pchName, int nScore, flo...
    method InternalOnPlayersFailedToRespond (line 290) | private void InternalOnPlayersFailedToRespond() {
    method InternalOnPlayersRefreshComplete (line 293) | private void InternalOnPlayersRefreshComplete() {
    method InternalOnAddPlayerToList (line 303) | private void InternalOnAddPlayerToList(IntPtr thisptr, IntPtr pchName,...
    method InternalOnPlayersFailedToRespond (line 306) | private void InternalOnPlayersFailedToRespond(IntPtr thisptr) {
    method InternalOnPlayersRefreshComplete (line 309) | private void InternalOnPlayersRefreshComplete(IntPtr thisptr) {
    class VTable (line 314) | [StructLayout(LayoutKind.Sequential)]
  class ISteamMatchmakingRulesResponse (line 345) | public class ISteamMatchmakingRulesResponse {
    method ISteamMatchmakingRulesResponse (line 364) | public ISteamMatchmakingRulesResponse(RulesResponded onRulesResponded,...
    method InternalOnRulesResponded (line 400) | private void InternalOnRulesResponded(IntPtr pchRule, IntPtr pchValue) {
    method InternalOnRulesFailedToRespond (line 403) | private void InternalOnRulesFailedToRespond() {
    method InternalOnRulesRefreshComplete (line 406) | private void InternalOnRulesRefreshComplete() {
    method InternalOnRulesResponded (line 416) | private void InternalOnRulesResponded(IntPtr thisptr, IntPtr pchRule, ...
    method InternalOnRulesFailedToRespond (line 419) | private void InternalOnRulesFailedToRespond(IntPtr thisptr) {
    method InternalOnRulesRefreshComplete (line 422) | private void InternalOnRulesRefreshComplete(IntPtr thisptr) {
    class VTable (line 427) | [StructLayout(LayoutKind.Sequential)]

FILE: CnCTDRAMapEditor/Steamworks.NET/InteropHelp.cs
  class InteropHelp (line 20) | public class InteropHelp {
    method TestIfPlatformSupported (line 21) | public static void TestIfPlatformSupported() {
    method TestIfAvailableClient (line 27) | public static void TestIfAvailableClient() {
    method TestIfAvailableGameServer (line 36) | public static void TestIfAvailableGameServer() {
    method PtrToStringUTF8 (line 46) | public static string PtrToStringUTF8(IntPtr nativeUtf8) {
    class UTF8StringHandle (line 69) | public class UTF8StringHandle : Microsoft.Win32.SafeHandles.SafeHandle...
      method UTF8StringHandle (line 70) | public UTF8StringHandle(string str)
      method ReleaseHandle (line 86) | protected override bool ReleaseHandle() {
      method UTF8StringHandle (line 95) | public UTF8StringHandle(string str) { }
      method Dispose (line 96) | public void Dispose() {}
    class UTF8StringHandle (line 94) | public class UTF8StringHandle : IDisposable {
      method UTF8StringHandle (line 70) | public UTF8StringHandle(string str)
      method ReleaseHandle (line 86) | protected override bool ReleaseHandle() {
      method UTF8StringHandle (line 95) | public UTF8StringHandle(string str) { }
      method Dispose (line 96) | public void Dispose() {}
    class SteamParamStringArray (line 102) | public class SteamParamStringArray {
      method SteamParamStringArray (line 110) | public SteamParamStringArray(System.Collections.Generic.IList<string...
  class MMKVPMarshaller (line 157) | public class MMKVPMarshaller {
    method MMKVPMarshaller (line 161) | public MMKVPMarshaller(MatchMakingKeyValuePair_t[] filters) {
  class DllCheck (line 191) | public class DllCheck {
    method GetModuleHandle (line 193) | [DllImport("kernel32.dll")]
    method GetModuleFileName (line 196) | [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    method Test (line 203) | public static bool Test() {
    method CheckSteamAPIDLL (line 211) | private static bool CheckSteamAPIDLL() {

FILE: CnCTDRAMapEditor/Steamworks.NET/Packsize.cs
  class Packsize (line 41) | public static class Packsize {
    method Test (line 48) | public static bool Test() {
    type ValvePackingSentinel_t (line 61) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]

FILE: CnCTDRAMapEditor/Steamworks.NET/Steam.cs
  class Version (line 18) | public static class Version {
  class SteamAPI (line 26) | public static class SteamAPI {
    method Init (line 36) | public static bool Init() {
    method Shutdown (line 52) | public static void Shutdown() {
    method RestartAppIfNecessary (line 67) | public static bool RestartAppIfNecessary(AppId_t unOwnAppID) {
    method ReleaseCurrentThreadMemory (line 76) | public static void ReleaseCurrentThreadMemory() {
    method RunCallbacks (line 108) | public static void RunCallbacks() {
    method IsSteamRunning (line 120) | public static bool IsSteamRunning() {
    method GetHSteamUserCurrent (line 126) | public static HSteamUser GetHSteamUserCurrent() {
    method GetHSteamPipe (line 132) | public static HSteamPipe GetHSteamPipe() {
    method GetHSteamUser (line 137) | public static HSteamUser GetHSteamUser() {
  class GameServer (line 143) | public static class GameServer {
    method Init (line 157) | public static bool Init(uint unIP, ushort usSteamPort, ushort usGamePo...
    method Shutdown (line 175) | public static void Shutdown() {
    method RunCallbacks (line 181) | public static void RunCallbacks() {
    method ReleaseCurrentThreadMemory (line 191) | public static void ReleaseCurrentThreadMemory() {
    method BSecure (line 196) | public static bool BSecure() {
    method GetSteamID (line 201) | public static CSteamID GetSteamID() {
    method GetHSteamPipe (line 206) | public static HSteamPipe GetHSteamPipe() {
    method GetHSteamUser (line 211) | public static HSteamUser GetHSteamUser() {
  class SteamEncryptedAppTicket (line 217) | public static class SteamEncryptedAppTicket {
    method BDecryptTicket (line 218) | public static bool BDecryptTicket(byte[] rgubTicketEncrypted, uint cub...
    method BIsTicketForApp (line 223) | public static bool BIsTicketForApp(byte[] rgubTicketDecrypted, uint cu...
    method GetTicketIssueTime (line 228) | public static uint GetTicketIssueTime(byte[] rgubTicketDecrypted, uint...
    method GetTicketSteamID (line 233) | public static void GetTicketSteamID(byte[] rgubTicketDecrypted, uint c...
    method GetTicketAppID (line 238) | public static uint GetTicketAppID(byte[] rgubTicketDecrypted, uint cub...
    method BUserOwnsAppInTicket (line 243) | public static bool BUserOwnsAppInTicket(byte[] rgubTicketDecrypted, ui...
    method BUserIsVacBanned (line 248) | public static bool BUserIsVacBanned(byte[] rgubTicketDecrypted, uint c...
    method GetUserVariableData (line 253) | public static byte[] GetUserVariableData(byte[] rgubTicketDecrypted, u...
    method BIsTicketSigned (line 261) | public static bool BIsTicketSigned(byte[] rgubTicketDecrypted, uint cu...
  class CSteamAPIContext (line 267) | internal static class CSteamAPIContext {
    method Clear (line 268) | internal static void Clear() {
    method Init (line 297) | internal static bool Init() {
    method GetSteamClient (line 383) | internal static IntPtr GetSteamClient() { return m_pSteamClient; }
    method GetSteamUser (line 384) | internal static IntPtr GetSteamUser() { return m_pSteamUser; }
    method GetSteamFriends (line 385) | internal static IntPtr GetSteamFriends() { return m_pSteamFriends; }
    method GetSteamUtils (line 386) | internal static IntPtr GetSteamUtils() { return m_pSteamUtils; }
    method GetSteamMatchmaking (line 387) | internal static IntPtr GetSteamMatchmaking() { return m_pSteamMatchmak...
    method GetSteamUserStats (line 388) | internal static IntPtr GetSteamUserStats() { return m_pSteamUserStats; }
    method GetSteamApps (line 389) | internal static IntPtr GetSteamApps() { return m_pSteamApps; }
    method GetSteamMatchmakingServers (line 390) | internal static IntPtr GetSteamMatchmakingServers() { return m_pSteamM...
    method GetSteamNetworking (line 391) | internal static IntPtr GetSteamNetworking() { return m_pSteamNetworkin...
    method GetSteamRemoteStorage (line 392) | internal static IntPtr GetSteamRemoteStorage() { return m_pSteamRemote...
    method GetSteamScreenshots (line 393) | internal static IntPtr GetSteamScreenshots() { return m_pSteamScreensh...
    method GetSteamGameSearch (line 394) | internal static IntPtr GetSteamGameSearch() { return m_pSteamGameSearc...
    method GetSteamHTTP (line 395) | internal static IntPtr GetSteamHTTP() { return m_pSteamHTTP; }
    method GetSteamController (line 396) | internal static IntPtr GetSteamController() { return m_pController; }
    method GetSteamUGC (line 397) | internal static IntPtr GetSteamUGC() { return m_pSteamUGC; }
    method GetSteamAppList (line 398) | internal static IntPtr GetSteamAppList() { return m_pSteamAppList; }
    method GetSteamMusic (line 399) | internal static IntPtr GetSteamMusic() { return m_pSteamMusic; }
    method GetSteamMusicRemote (line 400) | internal static IntPtr GetSteamMusicRemote() { return m_pSteamMusicRem...
    method GetSteamHTMLSurface (line 401) | internal static IntPtr GetSteamHTMLSurface() { return m_pSteamHTMLSurf...
    method GetSteamInventory (line 402) | internal static IntPtr GetSteamInventory() { return m_pSteamInventory; }
    method GetSteamVideo (line 403) | internal static IntPtr GetSteamVideo() { return m_pSteamVideo; }
    method GetSteamParentalSettings (line 404) | internal static IntPtr GetSteamParentalSettings() { return m_pSteamPar...
    method GetSteamInput (line 405) | internal static IntPtr GetSteamInput() { return m_pSteamInput; }
    method GetSteamParties (line 406) | internal static IntPtr GetSteamParties() { return m_pSteamParties; }
    method GetSteamRemotePlay (line 407) | internal static IntPtr GetSteamRemotePlay() { return m_pSteamRemotePla...
  class CSteamGameServerAPIContext (line 436) | internal static class CSteamGameServerAPIContext {
    method Clear (line 437) | internal static void Clear() {
    method Init (line 449) | internal static bool Init() {
    method GetSteamClient (line 486) | internal static IntPtr GetSteamClient() { return m_pSteamClient; }
    method GetSteamGameServer (line 487) | internal static IntPtr GetSteamGameServer() { return m_pSteamGameServe...
    method GetSteamUtils (line 488) | internal static IntPtr GetSteamUtils() { return m_pSteamUtils; }
    method GetSteamNetworking (line 489) | internal static IntPtr GetSteamNetworking() { return m_pSteamNetworkin...
    method GetSteamGameServerStats (line 490) | internal static IntPtr GetSteamGameServerStats() { return m_pSteamGame...
    method GetSteamHTTP (line 491) | internal static IntPtr GetSteamHTTP() { return m_pSteamHTTP; }
    method GetSteamInventory (line 492) | internal static IntPtr GetSteamInventory() { return m_pSteamInventory; }
    method GetSteamUGC (line 493) | internal static IntPtr GetSteamUGC() { return m_pSteamUGC; }
    method GetSteamApps (line 494) | internal static IntPtr GetSteamApps() { return m_pSteamApps; }

FILE: CnCTDRAMapEditor/Steamworks.NET/autogen/NativeMethods.cs
  class NativeMethods (line 38) | [System.Security.SuppressUnmanagedCodeSecurity()]
    method SteamAPI_Init (line 50) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_Init", CallingCon...
    method SteamAPI_Shutdown (line 54) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_Shutdown", Callin...
    method SteamAPI_RestartAppIfNecessary (line 57) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_RestartAppIfNeces...
    method SteamAPI_ReleaseCurrentThreadMemory (line 61) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ReleaseCurrentThr...
    method SteamAPI_WriteMiniDump (line 65) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_WriteMiniDump", C...
    method SteamAPI_SetMiniDumpComment (line 68) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SetMiniDumpCommen...
    method SteamAPI_RunCallbacks (line 72) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_RunCallbacks", Ca...
    method SteamAPI_RegisterCallback (line 75) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_RegisterCallback"...
    method SteamAPI_UnregisterCallback (line 78) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_UnregisterCallbac...
    method SteamAPI_RegisterCallResult (line 81) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_RegisterCallResul...
    method SteamAPI_UnregisterCallResult (line 84) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_UnregisterCallRes...
    method SteamAPI_IsSteamRunning (line 88) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_IsSteamRunning", ...
    method Steam_RunCallbacks (line 92) | [DllImport(NativeLibraryName, EntryPoint = "Steam_RunCallbacks", Calli...
    method Steam_RegisterInterfaceFuncs (line 95) | [DllImport(NativeLibraryName, EntryPoint = "Steam_RegisterInterfaceFun...
    method Steam_GetHSteamUserCurrent (line 98) | [DllImport(NativeLibraryName, EntryPoint = "Steam_GetHSteamUserCurrent...
    method SteamAPI_GetSteamInstallPath (line 101) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_GetSteamInstallPa...
    method SteamAPI_GetHSteamPipe (line 104) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_GetHSteamPipe", C...
    method SteamAPI_SetTryCatchCallbacks (line 107) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SetTryCatchCallba...
    method SteamAPI_GetHSteamUser (line 111) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_GetHSteamUser", C...
    method SteamInternal_ContextInit (line 114) | [DllImport(NativeLibraryName, EntryPoint = "SteamInternal_ContextInit"...
    method SteamInternal_CreateInterface (line 117) | [DllImport(NativeLibraryName, EntryPoint = "SteamInternal_CreateInterf...
    method SteamAPI_UseBreakpadCrashHandler (line 120) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_UseBreakpadCrashH...
    method SteamAPI_SetBreakpadAppID (line 123) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_SetBreakpadAppID"...
    method SteamGameServer_Init (line 127) | [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_InitSafe",...
    method SteamGameServer_Shutdown (line 131) | [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_Shutdown",...
    method SteamGameServer_RunCallbacks (line 134) | [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_RunCallbac...
    method SteamGameServer_ReleaseCurrentThreadMemory (line 137) | [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_ReleaseCur...
    method SteamGameServer_BSecure (line 140) | [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_BSecure", ...
    method SteamGameServer_GetSteamID (line 144) | [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_GetSteamID...
    method SteamGameServer_GetHSteamPipe (line 147) | [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_GetHSteamP...
    method SteamGameServer_GetHSteamUser (line 150) | [DllImport(NativeLibraryName, EntryPoint = "SteamGameServer_GetHSteamU...
    method SteamInternal_GameServer_Init (line 153) | [DllImport(NativeLibraryName, EntryPoint = "SteamInternal_GameServer_I...
    method SteamClient (line 158) | [DllImport(NativeLibraryName, EntryPoint = "SteamClient", CallingConve...
    method SteamGameServerClient (line 160) | [DllImport(NativeLibraryName, EntryPoint = "SteamGameServerClient", Ca...
    method SteamEncryptedAppTicket_BDecryptTicket (line 164) | [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = Ca...
    method SteamEncryptedAppTicket_BIsTicketForApp (line 168) | [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = Ca...
    method SteamEncryptedAppTicket_GetTicketIssueTime (line 172) | [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = Ca...
    method SteamEncryptedAppTicket_GetTicketSteamID (line 175) | [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = Ca...
    method SteamEncryptedAppTicket_GetTicketAppID (line 178) | [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = Ca...
    method SteamEncryptedAppTicket_BUserOwnsAppInTicket (line 181) | [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = Ca...
    method SteamEncryptedAppTicket_BUserIsVacBanned (line 185) | [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = Ca...
    method SteamEncryptedAppTicket_GetUserVariableData (line 189) | [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = Ca...
    method SteamEncryptedAppTicket_BIsTicketSigned (line 192) | [DllImport(NativeLibrary_SDKEncryptedAppTicket, CallingConvention = Ca...
    method ISteamAppList_GetNumInstalledApps (line 197) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_Get...
    method ISteamAppList_GetInstalledApps (line 200) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_Get...
    method ISteamAppList_GetAppName (line 203) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_Get...
    method ISteamAppList_GetAppInstallDir (line 206) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_Get...
    method ISteamAppList_GetAppBuildId (line 209) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamAppList_Get...
    method ISteamApps_BIsSubscribed (line 213) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsSub...
    method ISteamApps_BIsLowViolence (line 217) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsLow...
    method ISteamApps_BIsCybercafe (line 221) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsCyb...
    method ISteamApps_BIsVACBanned (line 225) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsVAC...
    method ISteamApps_GetCurrentGameLanguage (line 229) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetCur...
    method ISteamApps_GetAvailableGameLanguages (line 232) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetAva...
    method ISteamApps_BIsSubscribedApp (line 235) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsSub...
    method ISteamApps_BIsDlcInstalled (line 239) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsDlc...
    method ISteamApps_GetEarliestPurchaseUnixTime (line 243) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetEar...
    method ISteamApps_BIsSubscribedFromFreeWeekend (line 246) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsSub...
    method ISteamApps_GetDLCCount (line 250) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetDLC...
    method ISteamApps_BGetDLCDataByIndex (line 253) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BGetDL...
    method ISteamApps_InstallDLC (line 257) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_Instal...
    method ISteamApps_UninstallDLC (line 260) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_Uninst...
    method ISteamApps_RequestAppProofOfPurchaseKey (line 263) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_Reques...
    method ISteamApps_GetCurrentBetaName (line 266) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetCur...
    method ISteamApps_MarkContentCorrupt (line 270) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_MarkCo...
    method ISteamApps_GetInstalledDepots (line 274) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetIns...
    method ISteamApps_GetAppInstallDir (line 277) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetApp...
    method ISteamApps_BIsAppInstalled (line 280) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsApp...
    method ISteamApps_GetAppOwner (line 284) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetApp...
    method ISteamApps_GetLaunchQueryParam (line 287) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetLau...
    method ISteamApps_GetDlcDownloadProgress (line 290) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetDlc...
    method ISteamApps_GetAppBuildId (line 294) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetApp...
    method ISteamApps_RequestAllProofOfPurchaseKeys (line 297) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_Reques...
    method ISteamApps_GetFileDetails (line 300) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetFil...
    method ISteamApps_GetLaunchCommandLine (line 303) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_GetLau...
    method ISteamApps_BIsSubscribedFromFamilySharing (line 306) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamApps_BIsSub...
    method ISteamClient_CreateSteamPipe (line 311) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_Crea...
    method ISteamClient_BReleaseSteamPipe (line 314) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_BRel...
    method ISteamClient_ConnectToGlobalUser (line 318) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_Conn...
    method ISteamClient_CreateLocalUser (line 321) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_Crea...
    method ISteamClient_ReleaseUser (line 324) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_Rele...
    method ISteamClient_GetISteamUser (line 327) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamGameServer (line 330) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_SetLocalIPBinding (line 333) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_SetL...
    method ISteamClient_GetISteamFriends (line 336) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamUtils (line 339) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamMatchmaking (line 342) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamMatchmakingServers (line 345) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamGenericInterface (line 348) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamUserStats (line 351) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamGameServerStats (line 354) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamApps (line 357) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamNetworking (line 360) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamRemoteStorage (line 363) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamScreenshots (line 366) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamGameSearch (line 369) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetIPCCallCount (line 372) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_SetWarningMessageHook (line 375) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_SetW...
    method ISteamClient_BShutdownIfAllPipesClosed (line 378) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_BShu...
    method ISteamClient_GetISteamHTTP (line 382) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamController (line 385) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamUGC (line 388) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamAppList (line 391) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamMusic (line 394) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamMusicRemote (line 397) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamHTMLSurface (line 400) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamInventory (line 403) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamVideo (line 406) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamParentalSettings (line 409) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamInput (line 412) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamParties (line 415) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamClient_GetISteamRemotePlay (line 418) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamClient_GetI...
    method ISteamController_Init (line 422) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_Shutdown (line 426) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_RunFrame (line 430) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetConnectedControllers (line 433) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetActionSetHandle (line 436) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_ActivateActionSet (line 439) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetCurrentActionSet (line 442) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_ActivateActionSetLayer (line 445) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_DeactivateActionSetLayer (line 448) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_DeactivateAllActionSetLayers (line 451) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetActiveActionSetLayers (line 454) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetDigitalActionHandle (line 457) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetDigitalActionData (line 460) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetDigitalActionOrigins (line 463) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetAnalogActionHandle (line 466) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetAnalogActionData (line 469) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetAnalogActionOrigins (line 472) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetGlyphForActionOrigin (line 475) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetStringForActionOrigin (line 478) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_StopAnalogActionMomentum (line 481) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetMotionData (line 484) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_TriggerHapticPulse (line 487) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_TriggerRepeatedHapticPulse (line 490) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_TriggerVibration (line 493) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_SetLEDColor (line 496) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_ShowBindingPanel (line 499) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetInputTypeForHandle (line 503) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetControllerForGamepadIndex (line 506) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetGamepadIndexForController (line 509) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetStringForXboxOrigin (line 512) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetGlyphForXboxOrigin (line 515) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetActionOriginFromXboxOrigin (line 518) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_TranslateActionOrigin (line 521) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamController_GetControllerBindingRevision (line 524) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamController_...
    method ISteamFriends_GetPersonaName (line 529) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_SetPersonaName (line 532) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Set...
    method ISteamFriends_GetPersonaState (line 535) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendCount (line 538) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendByIndex (line 541) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendRelationship (line 544) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendPersonaState (line 547) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendPersonaName (line 550) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendGamePlayed (line 553) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendPersonaNameHistory (line 557) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendSteamLevel (line 560) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetPlayerNickname (line 563) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendsGroupCount (line 566) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendsGroupIDByIndex (line 569) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendsGroupName (line 572) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendsGroupMembersCount (line 575) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendsGroupMembersList (line 578) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_HasFriend (line 581) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Has...
    method ISteamFriends_GetClanCount (line 585) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetClanByIndex (line 588) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetClanName (line 591) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetClanTag (line 594) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetClanActivityCounts (line 597) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_DownloadClanActivityCounts (line 601) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Dow...
    method ISteamFriends_GetFriendCountFromSource (line 604) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendFromSourceByIndex (line 607) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_IsUserInSource (line 610) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsU...
    method ISteamFriends_SetInGameVoiceSpeaking (line 614) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Set...
    method ISteamFriends_ActivateGameOverlay (line 617) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Act...
    method ISteamFriends_ActivateGameOverlayToUser (line 620) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Act...
    method ISteamFriends_ActivateGameOverlayToWebPage (line 623) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Act...
    method ISteamFriends_ActivateGameOverlayToStore (line 626) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Act...
    method ISteamFriends_SetPlayedWith (line 629) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Set...
    method ISteamFriends_ActivateGameOverlayInviteDialog (line 632) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Act...
    method ISteamFriends_GetSmallFriendAvatar (line 635) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetMediumFriendAvatar (line 638) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetLargeFriendAvatar (line 641) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_RequestUserInformation (line 644) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Req...
    method ISteamFriends_RequestClanOfficerList (line 648) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Req...
    method ISteamFriends_GetClanOwner (line 651) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetClanOfficerCount (line 654) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetClanOfficerByIndex (line 657) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetUserRestrictions (line 660) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_SetRichPresence (line 663) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Set...
    method ISteamFriends_ClearRichPresence (line 667) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Cle...
    method ISteamFriends_GetFriendRichPresence (line 670) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendRichPresenceKeyCount (line 673) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendRichPresenceKeyByIndex (line 676) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_RequestFriendRichPresence (line 679) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Req...
    method ISteamFriends_InviteUserToGame (line 682) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Inv...
    method ISteamFriends_GetCoplayFriendCount (line 686) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetCoplayFriend (line 689) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendCoplayTime (line 692) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFriendCoplayGame (line 695) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_JoinClanChatRoom (line 698) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Joi...
    method ISteamFriends_LeaveClanChatRoom (line 701) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Lea...
    method ISteamFriends_GetClanChatMemberCount (line 705) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetChatMemberByIndex (line 708) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_SendClanChatMessage (line 711) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Sen...
    method ISteamFriends_GetClanChatMessage (line 715) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_IsClanChatAdmin (line 718) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsC...
    method ISteamFriends_IsClanChatWindowOpenInSteam (line 722) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsC...
    method ISteamFriends_OpenClanChatWindowInSteam (line 726) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Ope...
    method ISteamFriends_CloseClanChatWindowInSteam (line 730) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Clo...
    method ISteamFriends_SetListenForFriendsMessages (line 734) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Set...
    method ISteamFriends_ReplyToFriendMessage (line 738) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Rep...
    method ISteamFriends_GetFriendMessage (line 742) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_GetFollowerCount (line 745) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamFriends_IsFollowing (line 748) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsF...
    method ISteamFriends_EnumerateFollowingList (line 751) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Enu...
    method ISteamFriends_IsClanPublic (line 754) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsC...
    method ISteamFriends_IsClanOfficialGameGroup (line 758) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_IsC...
    method ISteamFriends_GetNumChatsWithUnreadPriorityMessages (line 762) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamFriends_Get...
    method ISteamGameServer_InitGameServer (line 766) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetProduct (line 770) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetGameDescription (line 773) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetModDir (line 776) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetDedicatedServer (line 779) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_LogOn (line 782) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_LogOnAnonymous (line 785) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_LogOff (line 788) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_BLoggedOn (line 791) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_BSecure (line 795) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_GetSteamID (line 799) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_WasRestartRequested (line 802) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetMaxPlayerCount (line 806) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetBotPlayerCount (line 809) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetServerName (line 812) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetMapName (line 815) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetPasswordProtected (line 818) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetSpectatorPort (line 821) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetSpectatorServerName (line 824) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_ClearAllKeyValues (line 827) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetKeyValue (line 830) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetGameTags (line 833) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetGameData (line 836) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetRegion (line 839) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SendUserConnectAndAuthenticate (line 842) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_CreateUnauthenticatedUserConnection (line 846) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SendUserDisconnect (line 849) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_BUpdateUserData (line 852) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_GetAuthSessionTicket (line 856) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_BeginAuthSession (line 859) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_EndAuthSession (line 862) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_CancelAuthTicket (line 865) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_UserHasLicenseForApp (line 868) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_RequestUserGroupStatus (line 871) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_GetGameplayStats (line 875) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_GetServerReputation (line 878) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_GetPublicIP (line 881) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_HandleIncomingPacket (line 884) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_GetNextOutgoingPacket (line 888) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_EnableHeartbeats (line 891) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_SetHeartbeatInterval (line 894) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_ForceHeartbeat (line 897) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_AssociateWithClan (line 900) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServer_ComputeNewPlayerCompatibility (line 903) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServer_...
    method ISteamGameServerStats_RequestUserStats (line 907) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamGameServerStats_GetUserStat (line 910) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamGameServerStats_GetUserStat0 (line 914) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamGameServerStats_GetUserAchievement (line 918) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamGameServerStats_SetUserStat (line 922) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamGameServerStats_SetUserStat0 (line 926) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamGameServerStats_UpdateUserAvgRateStat (line 930) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamGameServerStats_SetUserAchievement (line 934) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamGameServerStats_ClearUserAchievement (line 938) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamGameServerStats_StoreUserStats (line 942) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameServerS...
    method ISteamHTMLSurface_Init (line 946) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_Shutdown (line 950) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_CreateBrowser (line 954) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_RemoveBrowser (line 957) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_LoadURL (line 960) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_SetSize (line 963) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_StopLoad (line 966) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_Reload (line 969) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_GoBack (line 972) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_GoForward (line 975) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_AddHeader (line 978) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_ExecuteJavascript (line 981) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_MouseUp (line 984) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_MouseDown (line 987) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_MouseDoubleClick (line 990) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_MouseMove (line 993) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_MouseWheel (line 996) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_KeyDown (line 999) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_KeyUp (line 1002) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_KeyChar (line 1005) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_SetHorizontalScroll (line 1008) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_SetVerticalScroll (line 1011) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_SetKeyFocus (line 1014) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_ViewSource (line 1017) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_CopyToClipboard (line 1020) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_PasteFromClipboard (line 1023) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_Find (line 1026) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_StopFind (line 1029) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_GetLinkAtPosition (line 1032) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_SetCookie (line 1035) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_SetPageScaleFactor (line 1038) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_SetBackgroundMode (line 1041) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_SetDPIScalingFactor (line 1044) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_OpenDeveloperTools (line 1047) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_AllowStartRequest (line 1050) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_JSDialogResponse (line 1053) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTMLSurface_FileLoadDialogResponse (line 1056) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTMLSurface...
    method ISteamHTTP_CreateHTTPRequest (line 1060) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_Create...
    method ISteamHTTP_SetHTTPRequestContextValue (line 1063) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTT...
    method ISteamHTTP_SetHTTPRequestNetworkActivityTimeout (line 1067) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTT...
    method ISteamHTTP_SetHTTPRequestHeaderValue (line 1071) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTT...
    method ISteamHTTP_SetHTTPRequestGetOrPostParameter (line 1075) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTT...
    method ISteamHTTP_SendHTTPRequest (line 1079) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SendHT...
    method ISteamHTTP_SendHTTPRequestAndStreamResponse (line 1083) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SendHT...
    method ISteamHTTP_DeferHTTPRequest (line 1087) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_DeferH...
    method ISteamHTTP_PrioritizeHTTPRequest (line 1091) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_Priori...
    method ISteamHTTP_GetHTTPResponseHeaderSize (line 1095) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTT...
    method ISteamHTTP_GetHTTPResponseHeaderValue (line 1099) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTT...
    method ISteamHTTP_GetHTTPResponseBodySize (line 1103) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTT...
    method ISteamHTTP_GetHTTPResponseBodyData (line 1107) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTT...
    method ISteamHTTP_GetHTTPStreamingResponseBodyData (line 1111) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTT...
    method ISteamHTTP_ReleaseHTTPRequest (line 1115) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_Releas...
    method ISteamHTTP_GetHTTPDownloadProgressPct (line 1119) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTT...
    method ISteamHTTP_SetHTTPRequestRawPostBody (line 1123) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTT...
    method ISteamHTTP_CreateCookieContainer (line 1127) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_Create...
    method ISteamHTTP_ReleaseCookieContainer (line 1130) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_Releas...
    method ISteamHTTP_SetCookie (line 1134) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetCoo...
    method ISteamHTTP_SetHTTPRequestCookieContainer (line 1138) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTT...
    method ISteamHTTP_SetHTTPRequestUserAgentInfo (line 1142) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTT...
    method ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate (line 1146) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTT...
    method ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS (line 1150) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_SetHTT...
    method ISteamHTTP_GetHTTPRequestWasTimedOut (line 1154) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamHTTP_GetHTT...
    method ISteamInput_Init (line 1159) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Init"...
    method ISteamInput_Shutdown (line 1163) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Shutd...
    method ISteamInput_RunFrame (line 1167) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_RunFr...
    method ISteamInput_GetConnectedControllers (line 1170) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetCo...
    method ISteamInput_GetActionSetHandle (line 1173) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetAc...
    method ISteamInput_ActivateActionSet (line 1176) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Activ...
    method ISteamInput_GetCurrentActionSet (line 1179) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetCu...
    method ISteamInput_ActivateActionSetLayer (line 1182) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Activ...
    method ISteamInput_DeactivateActionSetLayer (line 1185) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Deact...
    method ISteamInput_DeactivateAllActionSetLayers (line 1188) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Deact...
    method ISteamInput_GetActiveActionSetLayers (line 1191) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetAc...
    method ISteamInput_GetDigitalActionHandle (line 1194) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetDi...
    method ISteamInput_GetDigitalActionData (line 1197) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetDi...
    method ISteamInput_GetDigitalActionOrigins (line 1200) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetDi...
    method ISteamInput_GetAnalogActionHandle (line 1203) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetAn...
    method ISteamInput_GetAnalogActionData (line 1206) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetAn...
    method ISteamInput_GetAnalogActionOrigins (line 1209) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetAn...
    method ISteamInput_GetGlyphForActionOrigin (line 1212) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetGl...
    method ISteamInput_GetStringForActionOrigin (line 1215) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetSt...
    method ISteamInput_StopAnalogActionMomentum (line 1218) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_StopA...
    method ISteamInput_GetMotionData (line 1221) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetMo...
    method ISteamInput_TriggerVibration (line 1224) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Trigg...
    method ISteamInput_SetLEDColor (line 1227) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_SetLE...
    method ISteamInput_TriggerHapticPulse (line 1230) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Trigg...
    method ISteamInput_TriggerRepeatedHapticPulse (line 1233) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Trigg...
    method ISteamInput_ShowBindingPanel (line 1236) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_ShowB...
    method ISteamInput_GetInputTypeForHandle (line 1240) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetIn...
    method ISteamInput_GetControllerForGamepadIndex (line 1243) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetCo...
    method ISteamInput_GetGamepadIndexForController (line 1246) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetGa...
    method ISteamInput_GetStringForXboxOrigin (line 1249) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetSt...
    method ISteamInput_GetGlyphForXboxOrigin (line 1252) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetGl...
    method ISteamInput_GetActionOriginFromXboxOrigin (line 1255) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetAc...
    method ISteamInput_TranslateActionOrigin (line 1258) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_Trans...
    method ISteamInput_GetDeviceBindingRevision (line 1261) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetDe...
    method ISteamInput_GetRemotePlaySessionID (line 1265) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInput_GetRe...
    method ISteamInventory_GetResultStatus (line 1269) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_GetResultItems (line 1272) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_GetResultItemProperty (line 1276) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_GetResultTimestamp (line 1280) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_CheckResultSteamID (line 1283) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_C...
    method ISteamInventory_DestroyResult (line 1287) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_D...
    method ISteamInventory_GetAllItems (line 1290) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_GetItemsByID (line 1294) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_SerializeResult (line 1298) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_S...
    method ISteamInventory_DeserializeResult (line 1302) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_D...
    method ISteamInventory_GenerateItems (line 1306) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_GrantPromoItems (line 1310) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_AddPromoItem (line 1314) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_A...
    method ISteamInventory_AddPromoItems (line 1318) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_A...
    method ISteamInventory_ConsumeItem (line 1322) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_C...
    method ISteamInventory_ExchangeItems (line 1326) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_E...
    method ISteamInventory_TransferItemQuantity (line 1330) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_T...
    method ISteamInventory_SendItemDropHeartbeat (line 1334) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_S...
    method ISteamInventory_TriggerItemDrop (line 1337) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_T...
    method ISteamInventory_TradeItems (line 1341) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_T...
    method ISteamInventory_LoadItemDefinitions (line 1345) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_L...
    method ISteamInventory_GetItemDefinitionIDs (line 1349) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_GetItemDefinitionProperty (line 1353) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_RequestEligiblePromoItemDefinitionsIDs (line 1357) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_R...
    method ISteamInventory_GetEligiblePromoItemDefinitionIDs (line 1360) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_StartPurchase (line 1364) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_S...
    method ISteamInventory_RequestPrices (line 1367) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_R...
    method ISteamInventory_GetNumItemsWithPrices (line 1370) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_GetItemsWithPrices (line 1373) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_GetItemPrice (line 1377) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_G...
    method ISteamInventory_StartUpdateProperties (line 1381) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_S...
    method ISteamInventory_RemoveProperty (line 1384) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_R...
    method ISteamInventory_SetProperty (line 1388) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_S...
    method ISteamInventory_SetProperty0 (line 1392) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_S...
    method ISteamInventory_SetProperty1 (line 1396) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_S...
    method ISteamInventory_SetProperty2 (line 1400) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_S...
    method ISteamInventory_SubmitUpdateProperties (line 1404) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamInventory_S...
    method ISteamMatchmaking_GetFavoriteGameCount (line 1409) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetFavoriteGame (line 1412) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_AddFavoriteGame (line 1416) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_RemoveFavoriteGame (line 1419) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_RequestLobbyList (line 1423) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_AddRequestLobbyListStringFilter (line 1426) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_AddRequestLobbyListNumericalFilter (line 1429) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_AddRequestLobbyListNearValueFilter (line 1432) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable (line 1435) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_AddRequestLobbyListDistanceFilter (line 1438) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_AddRequestLobbyListResultCountFilter (line 1441) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter (line 1444) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyByIndex (line 1447) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_CreateLobby (line 1450) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_JoinLobby (line 1453) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_LeaveLobby (line 1456) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_InviteUserToLobby (line 1459) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetNumLobbyMembers (line 1463) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyMemberByIndex (line 1466) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyData (line 1469) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_SetLobbyData (line 1472) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyDataCount (line 1476) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyDataByIndex (line 1479) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_DeleteLobbyData (line 1483) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyMemberData (line 1487) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_SetLobbyMemberData (line 1490) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_SendLobbyChatMsg (line 1493) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyChatEntry (line 1497) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_RequestLobbyData (line 1500) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_SetLobbyGameServer (line 1504) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyGameServer (line 1507) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_SetLobbyMemberLimit (line 1511) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyMemberLimit (line 1515) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_SetLobbyType (line 1518) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_SetLobbyJoinable (line 1522) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_GetLobbyOwner (line 1526) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_SetLobbyOwner (line 1529) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_SetLinkedLobby (line 1533) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmaking_CheckForPSNGameBootInvite (line 1537) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_RequestInternetServerList (line 1542) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_RequestLANServerList (line 1545) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_RequestFriendsServerList (line 1548) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_RequestFavoritesServerList (line 1551) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_RequestHistoryServerList (line 1554) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_RequestSpectatorServerList (line 1557) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_ReleaseRequest (line 1560) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_GetServerDetails (line 1563) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_CancelQuery (line 1566) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_RefreshQuery (line 1569) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_IsRefreshing (line 1572) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_GetServerCount (line 1576) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_RefreshServer (line 1579) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_PingServer (line 1582) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_PlayerDetails (line 1585) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_ServerRules (line 1588) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamMatchmakingServers_CancelServerQuery (line 1591) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMatchmaking...
    method ISteamGameSearch_AddGameSearchParams (line 1595) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_SearchForGameWithLobby (line 1598) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_SearchForGameSolo (line 1601) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_AcceptGame (line 1604) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_DeclineGame (line 1607) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_RetrieveConnectionDetails (line 1610) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_EndGameSearch (line 1613) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_SetGameHostParams (line 1616) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_SetConnectionDetails (line 1619) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_RequestPlayersForGame (line 1622) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_HostConfirmGameStart (line 1625) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_CancelRequestPlayersForGame (line 1628) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_SubmitPlayerResult (line 1631) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamGameSearch_EndGame (line 1634) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamGameSearch_...
    method ISteamParties_GetNumActiveBeacons (line 1638) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Get...
    method ISteamParties_GetBeaconByIndex (line 1641) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Get...
    method ISteamParties_GetBeaconDetails (line 1644) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Get...
    method ISteamParties_JoinParty (line 1648) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Joi...
    method ISteamParties_GetNumAvailableBeaconLocations (line 1651) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Get...
    method ISteamParties_GetAvailableBeaconLocations (line 1655) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Get...
    method ISteamParties_CreateBeacon (line 1659) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Cre...
    method ISteamParties_OnReservationCompleted (line 1662) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_OnR...
    method ISteamParties_CancelReservation (line 1665) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Can...
    method ISteamParties_ChangeNumOpenSlots (line 1668) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Cha...
    method ISteamParties_DestroyBeacon (line 1671) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Des...
    method ISteamParties_GetBeaconLocationData (line 1675) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParties_Get...
    method ISteamMusic_BIsEnabled (line 1680) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_BIsEn...
    method ISteamMusic_BIsPlaying (line 1684) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_BIsPl...
    method ISteamMusic_GetPlaybackStatus (line 1688) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_GetPl...
    method ISteamMusic_Play (line 1691) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_Play"...
    method ISteamMusic_Pause (line 1694) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_Pause...
    method ISteamMusic_PlayPrevious (line 1697) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_PlayP...
    method ISteamMusic_PlayNext (line 1700) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_PlayN...
    method ISteamMusic_SetVolume (line 1703) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_SetVo...
    method ISteamMusic_GetVolume (line 1706) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusic_GetVo...
    method ISteamMusicRemote_RegisterSteamMusicRemote (line 1710) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_DeregisterSteamMusicRemote (line 1714) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_BIsCurrentMusicRemote (line 1718) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_BActivationSuccess (line 1722) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_SetDisplayName (line 1726) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_SetPNGIcon_64x64 (line 1730) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_EnablePlayPrevious (line 1734) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_EnablePlayNext (line 1738) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_EnableShuffled (line 1742) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_EnableLooped (line 1746) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_EnableQueue (line 1750) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_EnablePlaylists (line 1754) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_UpdatePlaybackStatus (line 1758) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_UpdateShuffled (line 1762) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_UpdateLooped (line 1766) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_UpdateVolume (line 1770) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_CurrentEntryWillChange (line 1774) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_CurrentEntryIsAvailable (line 1778) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_UpdateCurrentEntryText (line 1782) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_UpdateCurrentEntryElapsedSeconds (line 1786) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_UpdateCurrentEntryCoverArt (line 1790) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_CurrentEntryDidChange (line 1794) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_QueueWillChange (line 1798) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_ResetQueueEntries (line 1802) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_SetQueueEntry (line 1806) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_SetCurrentQueueEntry (line 1810) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_QueueDidChange (line 1814) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_PlaylistWillChange (line 1818) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_ResetPlaylistEntries (line 1822) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_SetPlaylistEntry (line 1826) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_SetCurrentPlaylistEntry (line 1830) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamMusicRemote_PlaylistDidChange (line 1834) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamMusicRemote...
    method ISteamNetworking_SendP2PPacket (line 1839) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_IsP2PPacketAvailable (line 1843) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_ReadP2PPacket (line 1847) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_AcceptP2PSessionWithUser (line 1851) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_CloseP2PSessionWithUser (line 1855) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_CloseP2PChannelWithUser (line 1859) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_GetP2PSessionState (line 1863) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_AllowP2PPacketRelay (line 1867) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_CreateListenSocket (line 1871) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_CreateP2PConnectionSocket (line 1874) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_CreateConnectionSocket (line 1877) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_DestroySocket (line 1880) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_DestroyListenSocket (line 1884) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_SendDataOnSocket (line 1888) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_IsDataAvailableOnSocket (line 1892) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_RetrieveDataFromSocket (line 1896) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_IsDataAvailable (line 1900) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_RetrieveData (line 1904) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_GetSocketInfo (line 1908) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_GetListenSocketInfo (line 1912) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_GetSocketConnectionType (line 1916) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamNetworking_GetMaxPacketSize (line 1919) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamNetworking_...
    method ISteamParentalSettings_BIsParentalLockEnabled (line 1923) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSet...
    method ISteamParentalSettings_BIsParentalLockLocked (line 1927) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSet...
    method ISteamParentalSettings_BIsAppBlocked (line 1931) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSet...
    method ISteamParentalSettings_BIsAppInBlockList (line 1935) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSet...
    method ISteamParentalSettings_BIsFeatureBlocked (line 1939) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSet...
    method ISteamParentalSettings_BIsFeatureInBlockList (line 1943) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamParentalSet...
    method ISteamRemotePlay_GetSessionCount (line 1948) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_...
    method ISteamRemotePlay_GetSessionID (line 1951) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_...
    method ISteamRemotePlay_GetSessionSteamID (line 1954) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_...
    method ISteamRemotePlay_GetSessionClientName (line 1957) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_...
    method ISteamRemotePlay_GetSessionClientFormFactor (line 1960) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_...
    method ISteamRemotePlay_BGetSessionClientResolution (line 1963) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemotePlay_...
    method ISteamRemoteStorage_FileWrite (line 1968) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileRead (line 1972) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileWriteAsync (line 1975) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileReadAsync (line 1978) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileReadAsyncComplete (line 1981) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileForget (line 1985) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileDelete (line 1989) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileShare (line 1993) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_SetSyncPlatforms (line 1996) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileWriteStreamOpen (line 2000) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileWriteStreamWriteChunk (line 2003) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileWriteStreamClose (line 2007) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileWriteStreamCancel (line 2011) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileExists (line 2015) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FilePersisted (line 2019) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetFileSize (line 2023) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetFileTimestamp (line 2026) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetSyncPlatforms (line 2029) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetFileCount (line 2032) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetFileNameAndSize (line 2035) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetQuota (line 2038) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_IsCloudEnabledForAccount (line 2042) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_IsCloudEnabledForApp (line 2046) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_SetCloudEnabledForApp (line 2050) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UGCDownload (line 2053) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetUGCDownloadProgress (line 2056) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetUGCDetails (line 2060) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UGCRead (line 2064) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetCachedUGCCount (line 2067) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetCachedUGCHandle (line 2070) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetFileListFromServer (line 2073) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FileFetch (line 2076) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_FilePersist (line 2080) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_SynchronizeToClient (line 2084) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_SynchronizeToServer (line 2088) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_ResetFileRequestState (line 2092) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_PublishWorkshopFile (line 2096) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_CreatePublishedFileUpdateRequest (line 2099) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UpdatePublishedFileFile (line 2102) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UpdatePublishedFilePreviewFile (line 2106) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UpdatePublishedFileTitle (line 2110) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UpdatePublishedFileDescription (line 2114) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UpdatePublishedFileVisibility (line 2118) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UpdatePublishedFileTags (line 2122) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_CommitPublishedFileUpdate (line 2126) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetPublishedFileDetails (line 2129) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_DeletePublishedFile (line 2132) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_EnumerateUserPublishedFiles (line 2135) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_SubscribePublishedFile (line 2138) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_EnumerateUserSubscribedFiles (line 2141) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UnsubscribePublishedFile (line 2144) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription (line 2147) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetPublishedItemVoteDetails (line 2151) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UpdateUserPublishedItemVote (line 2154) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_GetUserPublishedItemVoteDetails (line 2157) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles (line 2160) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_PublishVideo (line 2163) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_SetUserPublishedFileAction (line 2166) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_EnumeratePublishedFilesByUserAction (line 2169) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_EnumeratePublishedWorkshopFiles (line 2172) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamRemoteStorage_UGCDownloadToLocation (line 2175) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamRemoteStora...
    method ISteamScreenshots_WriteScreenshot (line 2179) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots...
    method ISteamScreenshots_AddScreenshotToLibrary (line 2182) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots...
    method ISteamScreenshots_TriggerScreenshot (line 2185) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots...
    method ISteamScreenshots_HookScreenshots (line 2188) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots...
    method ISteamScreenshots_SetLocation (line 2191) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots...
    method ISteamScreenshots_TagUser (line 2195) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots...
    method ISteamScreenshots_TagPublishedFile (line 2199) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots...
    method ISteamScreenshots_IsScreenshotsHooked (line 2203) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots...
    method ISteamScreenshots_AddVRScreenshotToLibrary (line 2207) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamScreenshots...
    method ISteamUGC_CreateQueryUserUGCRequest (line 2211) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateQ...
    method ISteamUGC_CreateQueryAllUGCRequest (line 2214) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateQ...
    method ISteamUGC_CreateQueryAllUGCRequest0 (line 2217) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateQ...
    method ISteamUGC_CreateQueryUGCDetailsRequest (line 2220) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateQ...
    method ISteamUGC_SendQueryUGCRequest (line 2223) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SendQue...
    method ISteamUGC_GetQueryUGCResult (line 2226) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_GetQueryUGCPreviewURL (line 2230) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_GetQueryUGCMetadata (line 2234) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_GetQueryUGCChildren (line 2238) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_GetQueryUGCStatistic (line 2242) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_GetQueryUGCNumAdditionalPreviews (line 2246) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_GetQueryUGCAdditionalPreview (line 2249) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_GetQueryUGCNumKeyValueTags (line 2253) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_GetQueryUGCKeyValueTag (line 2256) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_GetQueryUGCKeyValueTag0 (line 2260) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetQuer...
    method ISteamUGC_ReleaseQueryUGCRequest (line 2264) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_Release...
    method ISteamUGC_AddRequiredTag (line 2268) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddRequ...
    method ISteamUGC_AddExcludedTag (line 2272) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddExcl...
    method ISteamUGC_SetReturnOnlyIDs (line 2276) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRetu...
    method ISteamUGC_SetReturnKeyValueTags (line 2280) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRetu...
    method ISteamUGC_SetReturnLongDescription (line 2284) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRetu...
    method ISteamUGC_SetReturnMetadata (line 2288) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRetu...
    method ISteamUGC_SetReturnChildren (line 2292) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRetu...
    method ISteamUGC_SetReturnAdditionalPreviews (line 2296) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRetu...
    method ISteamUGC_SetReturnTotalOnly (line 2300) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRetu...
    method ISteamUGC_SetReturnPlaytimeStats (line 2304) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRetu...
    method ISteamUGC_SetLanguage (line 2308) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetLang...
    method ISteamUGC_SetAllowCachedResponse (line 2312) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetAllo...
    method ISteamUGC_SetCloudFileNameFilter (line 2316) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetClou...
    method ISteamUGC_SetMatchAnyTag (line 2320) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetMatc...
    method ISteamUGC_SetSearchText (line 2324) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetSear...
    method ISteamUGC_SetRankedByTrendDays (line 2328) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetRank...
    method ISteamUGC_AddRequiredKeyValueTag (line 2332) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddRequ...
    method ISteamUGC_RequestUGCDetails (line 2336) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_Request...
    method ISteamUGC_CreateItem (line 2339) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_CreateI...
    method ISteamUGC_StartItemUpdate (line 2342) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_StartIt...
    method ISteamUGC_SetItemTitle (line 2345) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItem...
    method ISteamUGC_SetItemDescription (line 2349) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItem...
    method ISteamUGC_SetItemUpdateLanguage (line 2353) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItem...
    method ISteamUGC_SetItemMetadata (line 2357) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItem...
    method ISteamUGC_SetItemVisibility (line 2361) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItem...
    method ISteamUGC_SetItemTags (line 2365) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItem...
    method ISteamUGC_SetItemContent (line 2369) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItem...
    method ISteamUGC_SetItemPreview (line 2373) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetItem...
    method ISteamUGC_SetAllowLegacyUpload (line 2377) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetAllo...
    method ISteamUGC_RemoveAllItemKeyValueTags (line 2381) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveA...
    method ISteamUGC_RemoveItemKeyValueTags (line 2385) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveI...
    method ISteamUGC_AddItemKeyValueTag (line 2389) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddItem...
    method ISteamUGC_AddItemPreviewFile (line 2393) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddItem...
    method ISteamUGC_AddItemPreviewVideo (line 2397) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddItem...
    method ISteamUGC_UpdateItemPreviewFile (line 2401) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_UpdateI...
    method ISteamUGC_UpdateItemPreviewVideo (line 2405) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_UpdateI...
    method ISteamUGC_RemoveItemPreview (line 2409) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveI...
    method ISteamUGC_SubmitItemUpdate (line 2413) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SubmitI...
    method ISteamUGC_GetItemUpdateProgress (line 2416) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetItem...
    method ISteamUGC_SetUserItemVote (line 2419) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_SetUser...
    method ISteamUGC_GetUserItemVote (line 2422) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetUser...
    method ISteamUGC_AddItemToFavorites (line 2425) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddItem...
    method ISteamUGC_RemoveItemFromFavorites (line 2428) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveI...
    method ISteamUGC_SubscribeItem (line 2431) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_Subscri...
    method ISteamUGC_UnsubscribeItem (line 2434) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_Unsubsc...
    method ISteamUGC_GetNumSubscribedItems (line 2437) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetNumS...
    method ISteamUGC_GetSubscribedItems (line 2440) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetSubs...
    method ISteamUGC_GetItemState (line 2443) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetItem...
    method ISteamUGC_GetItemInstallInfo (line 2446) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetItem...
    method ISteamUGC_GetItemDownloadInfo (line 2450) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetItem...
    method ISteamUGC_DownloadItem (line 2454) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_Downloa...
    method ISteamUGC_BInitWorkshopForGameServer (line 2458) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_BInitWo...
    method ISteamUGC_SuspendDownloads (line 2462) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_Suspend...
    method ISteamUGC_StartPlaytimeTracking (line 2465) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_StartPl...
    method ISteamUGC_StopPlaytimeTracking (line 2468) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_StopPla...
    method ISteamUGC_StopPlaytimeTrackingForAllItems (line 2471) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_StopPla...
    method ISteamUGC_AddDependency (line 2474) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddDepe...
    method ISteamUGC_RemoveDependency (line 2477) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveD...
    method ISteamUGC_AddAppDependency (line 2480) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_AddAppD...
    method ISteamUGC_RemoveAppDependency (line 2483) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_RemoveA...
    method ISteamUGC_GetAppDependencies (line 2486) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_GetAppD...
    method ISteamUGC_DeleteItem (line 2489) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUGC_DeleteI...
    method ISteamUser_GetHSteamUser (line 2493) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetHSt...
    method ISteamUser_BLoggedOn (line 2496) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BLogge...
    method ISteamUser_GetSteamID (line 2500) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetSte...
    method ISteamUser_InitiateGameConnection (line 2503) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_Initia...
    method ISteamUser_TerminateGameConnection (line 2506) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_Termin...
    method ISteamUser_TrackAppUsageEvent (line 2509) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_TrackA...
    method ISteamUser_GetUserDataFolder (line 2512) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetUse...
    method ISteamUser_StartVoiceRecording (line 2516) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_StartV...
    method ISteamUser_StopVoiceRecording (line 2519) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_StopVo...
    method ISteamUser_GetAvailableVoice (line 2522) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetAva...
    method ISteamUser_GetVoice (line 2525) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetVoi...
    method ISteamUser_DecompressVoice (line 2528) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_Decomp...
    method ISteamUser_GetVoiceOptimalSampleRate (line 2531) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetVoi...
    method ISteamUser_GetAuthSessionTicket (line 2534) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetAut...
    method ISteamUser_BeginAuthSession (line 2537) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BeginA...
    method ISteamUser_EndAuthSession (line 2540) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_EndAut...
    method ISteamUser_CancelAuthTicket (line 2543) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_Cancel...
    method ISteamUser_UserHasLicenseForApp (line 2546) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_UserHa...
    method ISteamUser_BIsBehindNAT (line 2549) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsBeh...
    method ISteamUser_AdvertiseGame (line 2553) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_Advert...
    method ISteamUser_RequestEncryptedAppTicket (line 2556) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_Reques...
    method ISteamUser_GetEncryptedAppTicket (line 2559) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetEnc...
    method ISteamUser_GetGameBadgeLevel (line 2563) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetGam...
    method ISteamUser_GetPlayerSteamLevel (line 2566) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetPla...
    method ISteamUser_RequestStoreAuthURL (line 2569) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_Reques...
    method ISteamUser_BIsPhoneVerified (line 2572) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsPho...
    method ISteamUser_BIsTwoFactorEnabled (line 2576) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsTwo...
    method ISteamUser_BIsPhoneIdentifying (line 2580) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsPho...
    method ISteamUser_BIsPhoneRequiringVerification (line 2584) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_BIsPho...
    method ISteamUser_GetMarketEligibility (line 2588) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetMar...
    method ISteamUser_GetDurationControl (line 2591) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUser_GetDur...
    method ISteamUserStats_RequestCurrentStats (line 2595) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_R...
    method ISteamUserStats_GetStat (line 2599) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetStat0 (line 2603) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_SetStat (line 2607) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_S...
    method ISteamUserStats_SetStat0 (line 2611) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_S...
    method ISteamUserStats_UpdateAvgRateStat (line 2615) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_U...
    method ISteamUserStats_GetAchievement (line 2619) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_SetAchievement (line 2623) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_S...
    method ISteamUserStats_ClearAchievement (line 2627) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_C...
    method ISteamUserStats_GetAchievementAndUnlockTime (line 2631) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_StoreStats (line 2635) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_S...
    method ISteamUserStats_GetAchievementIcon (line 2639) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetAchievementDisplayAttribute (line 2642) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_IndicateAchievementProgress (line 2645) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_I...
    method ISteamUserStats_GetNumAchievements (line 2649) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetAchievementName (line 2652) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_RequestUserStats (line 2655) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_R...
    method ISteamUserStats_GetUserStat (line 2658) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetUserStat0 (line 2662) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetUserAchievement (line 2666) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetUserAchievementAndUnlockTime (line 2670) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_ResetAllStats (line 2674) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_R...
    method ISteamUserStats_FindOrCreateLeaderboard (line 2678) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_F...
    method ISteamUserStats_FindLeaderboard (line 2681) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_F...
    method ISteamUserStats_GetLeaderboardName (line 2684) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetLeaderboardEntryCount (line 2687) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetLeaderboardSortMethod (line 2690) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetLeaderboardDisplayType (line 2693) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_DownloadLeaderboardEntries (line 2696) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_D...
    method ISteamUserStats_DownloadLeaderboardEntriesForUsers (line 2699) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_D...
    method ISteamUserStats_GetDownloadedLeaderboardEntry (line 2702) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_UploadLeaderboardScore (line 2706) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_U...
    method ISteamUserStats_AttachLeaderboardUGC (line 2709) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_A...
    method ISteamUserStats_GetNumberOfCurrentPlayers (line 2712) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_RequestGlobalAchievementPercentages (line 2715) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_R...
    method ISteamUserStats_GetMostAchievedAchievementInfo (line 2718) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetNextMostAchievedAchievementInfo (line 2721) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetAchievementAchievedPercent (line 2724) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_RequestGlobalStats (line 2728) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_R...
    method ISteamUserStats_GetGlobalStat (line 2731) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetGlobalStat0 (line 2735) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetGlobalStatHistory (line 2739) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_GetGlobalStatHistory0 (line 2742) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_InstallPS3Trophies (line 2745) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_I...
    method ISteamUserStats_GetTrophySpaceRequiredBeforeInstall (line 2749) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUserStats_SetUserStatsData (line 2752) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_S...
    method ISteamUserStats_GetUserStatsData (line 2756) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUserStats_G...
    method ISteamUtils_GetSecondsSinceAppActive (line 2762) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetSe...
    method ISteamUtils_GetSecondsSinceComputerActive (line 2765) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetSe...
    method ISteamUtils_GetConnectedUniverse (line 2768) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetCo...
    method ISteamUtils_GetServerRealTime (line 2771) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetSe...
    method ISteamUtils_GetIPCountry (line 2774) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetIP...
    method ISteamUtils_GetImageSize (line 2777) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetIm...
    method ISteamUtils_GetImageRGBA (line 2781) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetIm...
    method ISteamUtils_GetCSERIPPort (line 2785) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetCS...
    method ISteamUtils_GetCurrentBatteryPower (line 2789) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetCu...
    method ISteamUtils_GetAppID (line 2792) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetAp...
    method ISteamUtils_SetOverlayNotificationPosition (line 2795) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_SetOv...
    method ISteamUtils_IsAPICallCompleted (line 2798) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsAPI...
    method ISteamUtils_GetAPICallFailureReason (line 2802) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetAP...
    method ISteamUtils_GetAPICallResult (line 2805) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetAP...
    method ISteamUtils_GetIPCCallCount (line 2809) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetIP...
    method ISteamUtils_SetWarningMessageHook (line 2812) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_SetWa...
    method ISteamUtils_IsOverlayEnabled (line 2815) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsOve...
    method ISteamUtils_BOverlayNeedsPresent (line 2819) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_BOver...
    method ISteamUtils_CheckFileSignature (line 2823) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_Check...
    method ISteamUtils_ShowGamepadTextInput (line 2826) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_ShowG...
    method ISteamUtils_GetEnteredGamepadTextLength (line 2830) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetEn...
    method ISteamUtils_GetEnteredGamepadTextInput (line 2833) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetEn...
    method ISteamUtils_GetSteamUILanguage (line 2837) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_GetSt...
    method ISteamUtils_IsSteamRunningInVR (line 2840) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsSte...
    method ISteamUtils_SetOverlayNotificationInset (line 2844) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_SetOv...
    method ISteamUtils_IsSteamInBigPictureMode (line 2847) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsSte...
    method ISteamUtils_StartVRDashboard (line 2851) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_Start...
    method ISteamUtils_IsVRHeadsetStreamingEnabled (line 2854) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsVRH...
    method ISteamUtils_SetVRHeadsetStreamingEnabled (line 2858) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_SetVR...
    method ISteamUtils_IsSteamChinaLauncher (line 2861) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_IsSte...
    method ISteamUtils_InitFilterText (line 2865) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_InitF...
    method ISteamUtils_FilterText (line 2869) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamUtils_Filte...
    method ISteamVideo_GetVideoURL (line 2873) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamVideo_GetVi...
    method ISteamVideo_IsBroadcasting (line 2876) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamVideo_IsBro...
    method ISteamVideo_GetOPFSettings (line 2880) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamVideo_GetOP...
    method ISteamVideo_GetOPFStringForApp (line 2883) | [DllImport(NativeLibraryName, EntryPoint = "SteamAPI_ISteamVideo_GetOP...

FILE: CnCTDRAMapEditor/Steamworks.NET/autogen/SteamCallbacks.cs
  type SteamAppInstalled_t (line 22) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SteamAppUninstalled_t (line 32) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type DlcInstalled_t (line 43) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RegisterActivationCodeResponse_t (line 53) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type NewUrlLaunchParameters_t (line 67) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type AppProofOfPurchaseKeyResponse_t (line 77) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type FileDetailsResult_t (line 91) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type PersonaStateChange_t (line 106) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GameOverlayActivated_t (line 119) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GameServerChangeRequested_t (line 130) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GameLobbyJoinRequested_t (line 144) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type AvatarImageLoaded_t (line 162) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type ClanOfficerListResponse_t (line 175) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type FriendRichPresenceUpdate_t (line 187) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type GameRichPresenceJoinRequested_t (line 199) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GameConnectedClanChatMsg_t (line 211) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type GameConnectedChatJoin_t (line 223) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GameConnectedChatLeave_t (line 234) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
  type DownloadClanActivityCountsResult_t (line 249) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type JoinClanChatRoomCompletionResult_t (line 260) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type GameConnectedFriendChatMsg_t (line 271) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type FriendsGetFollowerCount_t (line 279) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type FriendsIsFollowing_t (line 288) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type FriendsEnumerateFollowingList_t (line 298) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type SetPersonaNameResponse_t (line 312) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type UnreadChatMessagesChanged_t (line 327) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type GCMessageAvailable_t (line 335) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GCMessageFailed_t (line 343) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type GSClientApprove_t (line 354) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GSClientDeny_t (line 363) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type GSClientKick_t (line 374) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type GSClientAchievementStatus_t (line 385) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GSPolicyResponse_t (line 398) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GSGameplayStats_t (line 406) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GSClientGroupStatus_t (line 417) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
  type GSReputation_t (line 430) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type AssociateWithClanResult_t (line 452) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type ComputeNewPlayerCompatibilityResult_t (line 460) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type GSStatsReceived_t (line 476) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type GSStatsStored_t (line 487) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type GSStatsUnloaded_t (line 499) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_BrowserReady_t (line 510) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_NeedsPaint_t (line 520) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_StartRequest_t (line 542) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_CloseBrowser_t (line 557) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_URLChanged_t (line 567) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_FinishedRequest_t (line 584) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_OpenLinkInNewTab_t (line 596) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_ChangedTitle_t (line 607) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_SearchResults_t (line 618) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_CanGoBackAndForward_t (line 630) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_HorizontalScroll_t (line 644) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_VerticalScroll_t (line 660) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_LinkAtPosition_t (line 676) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_JSAlert_t (line 694) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_JSConfirm_t (line 706) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_FileOpenDialog_t (line 718) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_NewWindow_t (line 736) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_SetCursor_t (line 752) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_StatusText_t (line 763) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_ShowToolTip_t (line 774) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_UpdateToolTip_t (line 785) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_HideToolTip_t (line 796) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTML_BrowserRestarted_t (line 806) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTTPRequestCompleted_t (line 815) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTTPRequestHeadersReceived_t (line 839) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type HTTPRequestDataReceived_t (line 852) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SteamInventoryResultReady_t (line 875) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SteamInventoryFullUpdate_t (line 890) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SteamInventoryDefinitionUpdate_t (line 901) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type SteamInventoryEligiblePromoItemDefIDs_t (line 908) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SteamInventoryStartPurchaseResult_t (line 920) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SteamInventoryRequestPricesResult_t (line 930) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type FavoritesListChanged_t (line 944) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type LobbyInvite_t (line 966) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type LobbyEnter_t (line 981) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type LobbyDataUpdate_t (line 998) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type LobbyChatUpdate_t (line 1013) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type LobbyChatMsg_t (line 1029) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type LobbyGameCreated_t (line 1046) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type LobbyMatchList_t (line 1061) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type LobbyKicked_t (line 1072) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type LobbyCreated_t (line 1087) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type FavoritesListAccountsUpdated_t (line 1108) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SearchForGameProgressCallback_t (line 1118) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SearchForGameResultCallback_t (line 1134) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RequestPlayersForGameProgressCallback_t (line 1156) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RequestPlayersForGameResultCallback_t (line 1168) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RequestPlayersForGameFinalResultCallback_t (line 1186) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SubmitPlayerResultResultCallback_t (line 1197) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type EndGameResultCallback_t (line 1209) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type JoinPartyCallback_t (line 1221) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type CreateBeaconCallback_t (line 1234) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type ReservationNotificationCallback_t (line 1247) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type ChangeNumOpenSlotsCallback_t (line 1257) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type AvailableBeaconLocationsUpdated_t (line 1266) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type ActiveBeaconsUpdated_t (line 1273) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type PlaybackStatusHasChanged_t (line 1280) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type VolumeHasChanged_t (line 1286) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type MusicPlayerRemoteWillActivate_t (line 1294) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type MusicPlayerRemoteWillDeactivate_t (line 1300) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type MusicPlayerRemoteToFront_t (line 1306) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type MusicPlayerWillQuit_t (line 1312) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type MusicPlayerWantsPlay_t (line 1318) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type MusicPlayerWantsPause_t (line 1324) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type MusicPlayerWantsPlayPrevious_t (line 1330) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type MusicPlayerWantsPlayNext_t (line 1336) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  type MusicPlayerWantsShuffled_t (line 1342) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type MusicPlayerWantsLooped_t (line 1350) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type MusicPlayerWantsVolume_t (line 1358) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type MusicPlayerSelectsQueueEntry_t (line 1365) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type MusicPlayerSelectsPlaylistEntry_t (line 1372) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type MusicPlayerWantsPlayingRepeatStatus_t (line 1379) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type P2PSessionRequest_t (line 1389) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type P2PSessionConnectFail_t (line 1399) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
  type SocketStatusCallback_t (line 1409) | [StructLayout(LayoutKind.Sequential, Pack = 4)]
  type SteamParentalSettingsChanged_t (line 1422) | [CallbackIdentity(Constants.k_ISteamParentalSettingsCallbacks + 1)]
  type SteamRemotePlaySessionConnected_t (line 1428) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type SteamRemotePlaySessionDisconnected_t (line 1435) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RemoteStorageAppSyncedClient_t (line 1447) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RemoteStorageAppSyncedServer_t (line 1460) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RemoteStorageAppSyncProgress_t (line 1473) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RemoteStorageAppSyncStatusCheck_t (line 1493) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RemoteStorageFileShareResult_t (line 1504) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RemoteStoragePublishFileResult_t (line 1518) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RemoteStorageDeletePublishedFileResult_t (line 1531) | [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  type RemoteStorageEnumerateUserPublishedFilesResult_t (line 1542
Copy disabled (too large) Download .json
Condensed preview — 1328 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,687K chars).
[
  {
    "path": ".gitignore",
    "chars": 101,
    "preview": "\n# Visual Studio files\n.vs/\n*.user\n\n# Output object and binary folders\n[Dd]ebug/\n[Rr]elease/\n[Bb]in/\n"
  },
  {
    "path": "CnCRemastered.sln",
    "chars": 1198,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 15\nVisualStudioVersion = 15.0.28307.1022\nM"
  },
  {
    "path": "CnCTDRAMapEditor/App.config",
    "chars": 1873,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n    <configSections>\n        <sectionGroup name=\"applicationSetti"
  },
  {
    "path": "CnCTDRAMapEditor/CnCTDRAMapEditor.csproj",
    "chars": 26425,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\" ToolsVersion"
  },
  {
    "path": "CnCTDRAMapEditor/Controls/BasicSettings.Designer.cs",
    "chars": 28080,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/BasicSettings.cs",
    "chars": 4502,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/BasicSettings.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Controls/BriefingSettings.Designer.cs",
    "chars": 2990,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/BriefingSettings.cs",
    "chars": 1218,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/BriefingSettings.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Controls/ImageTooltip.Designer.cs",
    "chars": 1878,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/ImageTooltip.cs",
    "chars": 2123,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/MapPanel.Designer.cs",
    "chars": 1886,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/MapPanel.cs",
    "chars": 16945,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/MapPanel.resx",
    "chars": 5874,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Controls/MenuButton.Designer.cs",
    "chars": 1879,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/MenuButton.cs",
    "chars": 2991,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/ObjectProperties.Designer.cs",
    "chars": 18811,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/ObjectProperties.cs",
    "chars": 10483,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/ObjectProperties.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Controls/PlayerSettings.Designer.cs",
    "chars": 18472,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/PlayerSettings.cs",
    "chars": 3788,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/PlayerSettings.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Controls/PropertiesComboBox.Designer.cs",
    "chars": 1887,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/PropertiesComboBox.cs",
    "chars": 2090,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/TerrainProperties.Designer.cs",
    "chars": 5496,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/TerrainProperties.cs",
    "chars": 4898,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/TerrainProperties.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Controls/TypeComboBox.Designer.cs",
    "chars": 1881,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Controls/TypeComboBox.cs",
    "chars": 3963,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/ErrorMessageBox.Designer.cs",
    "chars": 7613,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/ErrorMessageBox.cs",
    "chars": 1689,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/ErrorMessageBox.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/InviteMessageBox.Designer.cs",
    "chars": 7388,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/InviteMessageBox.cs",
    "chars": 1460,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/InviteMessageBox.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/MapSettingsDialog.Designer.cs",
    "chars": 8495,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/MapSettingsDialog.cs",
    "chars": 6102,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/MapSettingsDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/NewMapDialog.Designer.cs",
    "chars": 15732,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/NewMapDialog.cs",
    "chars": 2748,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/NewMapDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/SteamDialog.Designer.cs",
    "chars": 21177,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/SteamDialog.cs",
    "chars": 8945,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/SteamDialog.resx",
    "chars": 6768,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/TeamTypesDialog.Designer.cs",
    "chars": 42121,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/TeamTypesDialog.cs",
    "chars": 19494,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/TeamTypesDialog.resx",
    "chars": 6676,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/TriggersDialog.Designer.cs",
    "chars": 38721,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/TriggersDialog.cs",
    "chars": 28334,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Dialogs/TriggersDialog.resx",
    "chars": 5905,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Event/RenderEventArgs.cs",
    "chars": 1265,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Event/UndoRedoEventArgs.cs",
    "chars": 1218,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Globals.cs",
    "chars": 2982,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Interface/IBrowsableType.cs",
    "chars": 1021,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Interface/ICellOccupier.cs",
    "chars": 963,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Interface/ICellOverlapper.cs",
    "chars": 993,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Interface/IGamePlugin.cs",
    "chars": 1557,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Interface/INamedType.cs",
    "chars": 953,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Interface/ITechnoType.cs",
    "chars": 981,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Interface/ITool.cs",
    "chars": 1140,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Interface/IWidget.cs",
    "chars": 1114,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/License.txt",
    "chars": 37558,
    "preview": "Electronic Arts Inc. released only TiberianDawn.dll, RedAlert.dll and \nthe Command & Conquer Map Editor and their corres"
  },
  {
    "path": "CnCTDRAMapEditor/MainForm.Designer.cs",
    "chars": 39620,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/MainForm.cs",
    "chars": 50213,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/MainForm.resx",
    "chars": 602343,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Model/BasicSection.cs",
    "chars": 6857,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/BriefingSection.cs",
    "chars": 1025,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Building.cs",
    "chars": 3831,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/BuildingType.cs",
    "chars": 6255,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/CellGrid.cs",
    "chars": 5701,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/CellMetrics.cs",
    "chars": 4692,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/CellTrigger.cs",
    "chars": 983,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/DirectionType.cs",
    "chars": 2145,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/House.cs",
    "chars": 4984,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/HouseType.cs",
    "chars": 2648,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Infantry.cs",
    "chars": 4966,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/InfantryType.cs",
    "chars": 3342,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Map.cs",
    "chars": 23854,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/MapSection.cs",
    "chars": 3581,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/OccupierSet.cs",
    "chars": 9207,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/OverlapperSet.cs",
    "chars": 4103,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Overlay.cs",
    "chars": 1230,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/OverlayType.cs",
    "chars": 4229,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Smudge.cs",
    "chars": 1144,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/SmudgeType.cs",
    "chars": 3568,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/SteamSection.cs",
    "chars": 1475,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/TeamType.cs",
    "chars": 4327,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Template.cs",
    "chars": 1188,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/TemplateType.cs",
    "chars": 4291,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Terrain.cs",
    "chars": 2528,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/TerrainType.cs",
    "chars": 4168,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/TheaterType.cs",
    "chars": 1967,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Trigger.cs",
    "chars": 4256,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/TypeItem.cs",
    "chars": 1127,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Unit.cs",
    "chars": 3022,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/UnitType.cs",
    "chars": 4526,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Model/Waypoint.cs",
    "chars": 1975,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Program.cs",
    "chars": 4547,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Properties/AssemblyInfo.cs",
    "chars": 2299,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Properties/Resources.Designer.cs",
    "chars": 4042,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Properties/Resources.resx",
    "chars": 838483,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "CnCTDRAMapEditor/Properties/Settings.Designer.cs",
    "chars": 3197,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Properties/Settings.settings",
    "chars": 690,
    "preview": "<?xml version='1.0' encoding='utf-8'?>\n<SettingsFile xmlns=\"http://schemas.microsoft.com/VisualStudio/2004/01/settings\""
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/ActionDataTypes.cs",
    "chars": 19838,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/ActionTypes.cs",
    "chars": 4138,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/BasicSection.cs",
    "chars": 3737,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/BuildingTypes.cs",
    "chars": 13904,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/Constants.cs",
    "chars": 1499,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/DirectionTypes.cs",
    "chars": 3240,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/EventTypes.cs",
    "chars": 3917,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/GamePlugin.cs",
    "chars": 79464,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/House.cs",
    "chars": 1405,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/HouseTypes.cs",
    "chars": 3460,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/InfantryTypes.cs",
    "chars": 4433,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/MissionTypes.cs",
    "chars": 1660,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/OverlayTypes.cs",
    "chars": 4799,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/SmudgeTypes.cs",
    "chars": 2823,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/TeamMissionTypes.cs",
    "chars": 1686,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/TemplateTypes.cs",
    "chars": 62040,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/TerrainTypes.cs",
    "chars": 8357,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/TheaterTypes.cs",
    "chars": 2107,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/RedAlert/UnitTypes.cs",
    "chars": 5727,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Render/MapRenderer.cs",
    "chars": 37087,
    "preview": "//\n// Copyright 2020 Electronic Arts Inc.\n//\n// The Command & Conquer Map Editor and corresponding source code is free "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/CallbackDispatcher.cs",
    "chars": 12638,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/CallbackIdentity.cs",
    "chars": 1272,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/ISteamMatchmakingResponses.cs",
    "chars": 18781,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/InteropHelp.cs",
    "chars": 7747,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/Packsize.cs",
    "chars": 2497,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/Steam.cs",
    "chars": 24923,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/NativeMethods.cs",
    "chars": 241291,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/SteamCallbacks.cs",
    "chars": 127552,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/SteamConstants.cs",
    "chars": 13616,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/SteamEnums.cs",
    "chars": 100093,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/SteamStructs.cs",
    "chars": 9842,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamapplist.cs",
    "chars": 2490,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamapps.cs",
    "chars": 12052,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamclient.cs",
    "chars": 16858,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamcontroller.cs",
    "chars": 19046,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamfriends.cs",
    "chars": 32830,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamgameserver.cs",
    "chars": 23418,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamgameserverapps.cs",
    "chars": 12454,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamgameserverclient.cs",
    "chars": 17372,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamgameserverhttp.cs",
    "chars": 16759,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamgameserverinventory.cs",
    "chars": 30054,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamgameservernetworking.cs",
    "chars": 16458,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamgameserverstats.cs",
    "chars": 5622,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamgameserverugc.cs",
    "chars": 33506,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamgameserverutils.cs",
    "chars": 16766,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamhtmlsurface.cs",
    "chars": 16746,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamhttp.cs",
    "chars": 16399,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteaminput.cs",
    "chars": 19841,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteaminventory.cs",
    "chars": 29526,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteammatchmaking.cs",
    "chars": 51767,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteammusic.cs",
    "chars": 2209,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteammusicremote.cs",
    "chars": 8351,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamnetworking.cs",
    "chars": 16140,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamparentalsettings.cs",
    "chars": 2002,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamremoteplay.cs",
    "chars": 2952,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamremotestorage.cs",
    "chars": 25004,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamscreenshots.cs",
    "chars": 5874,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamugc.cs",
    "chars": 32404,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamunifiedmessages.cs",
    "chars": 766,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamuser.cs",
    "chars": 19132,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamuserstats.cs",
    "chars": 26944,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamutils.cs",
    "chars": 16308,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/autogen/isteamvideo.cs",
    "chars": 2056,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/MatchmakingTypes/gameserveritem_t.cs",
    "chars": 4443,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/MatchmakingTypes/servernetadr_t.cs",
    "chars": 3660,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamClient/SteamAPIWarningMessageHook_t.cs",
    "chars": 851,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamClient/SteamAPI_CheckCallbackRegistered_t.cs",
    "chars": 891,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamClient/SteamAPI_PostAPIResultInProcess_t.cs",
    "chars": 766,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamClientPublic/CGameID.cs",
    "chars": 3751,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamClientPublic/CSteamID.cs",
    "chars": 10757,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamClientPublic/HAuthTicket.cs",
    "chars": 1786,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamController/ControllerActionSetHandle_t.cs",
    "chars": 2117,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamController/ControllerAnalogActionHandle_t.cs",
    "chars": 2195,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamController/ControllerDigitalActionHandle_t.cs",
    "chars": 2221,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamController/ControllerHandle_t.cs",
    "chars": 1883,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamFriends/FriendsGroupID_t.cs",
    "chars": 1909,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamHTMLSurface/HHTMLBrowser.cs",
    "chars": 1814,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamHTTP/HTTPCookieContainerHandle.cs",
    "chars": 2178,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamHTTP/HTTPRequestHandle.cs",
    "chars": 1954,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamInput/InputActionSetHandle_t.cs",
    "chars": 1987,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamInput/InputAnalogActionHandle_t.cs",
    "chars": 2065,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamInput/InputDigitalActionHandle_t.cs",
    "chars": 2091,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamInput/InputHandle_t.cs",
    "chars": 1753,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamInventory/SteamInventoryResult_t.cs",
    "chars": 2069,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamInventory/SteamInventoryUpdateHandle_t.cs",
    "chars": 2261,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamInventory/SteamItemDef_t.cs",
    "chars": 1771,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamInventory/SteamItemInstanceID_t.cs",
    "chars": 2065,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamMatchmaking/HServerListRequest.cs",
    "chars": 1869,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamMatchmaking/HServerQuery.cs",
    "chars": 1811,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamNetworking/SNetListenSocket_t.cs",
    "chars": 1879,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamNetworking/SNetSocket_t.cs",
    "chars": 1723,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamRemoteStorage/PublishedFileId_t.cs",
    "chars": 1936,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamRemoteStorage/PublishedFileUpdateHandle_t.cs",
    "chars": 2233,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamRemoteStorage/UGCFileWriteStreamHandle_t.cs",
    "chars": 2205,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamRemoteStorage/UGCHandle_t.cs",
    "chars": 1785,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  },
  {
    "path": "CnCTDRAMapEditor/Steamworks.NET/types/SteamScreenshots/ScreenshotHandle.cs",
    "chars": 1926,
    "preview": "// This file is provided under The MIT License as part of Steamworks.NET.\n// Copyright (c) 2013-2019 Riley Labrecque\n// "
  }
]

// ... and 1128 more files (download for full content)

About this extraction

This page contains the full source code of the electronicarts/CnC_Remastered_Collection GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1328 files (28.8 MB), approximately 4.0M tokens, and a symbol index with 6281 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!