**This is an old revision of the document!**
In Game Text Dialog Box
A text dialog box can be opened when a new colony mission is started to give background story and mission briefings.
Creating the text dialog box programmatically requires the following steps
- Write up the briefing/backstory in rich text format (RTF).
- Add a resource script (.rc) to the project detailing the design of the dialog box.
- Add a resource header file (typically resource.h) to the project providing a link between the resource script file and the rest of the source code.
- Add code to the scenario that formats and opens the dialog screen through the windows API.
Writing briefing in RTF format
Rich Text Format documents include metadata such as font and text color which are not available in text (.txt) format. Depending on the program used to open an RTF, the metadata may be hidden. Microsoft Word and Wordpad will default to showing just the text and the effect of the metadata on the text. Notepad or Notepad++ will show all of the metadata.
Outpost 2 uses Arial font size 10 for Campaign Mission Briefing Screens.
Note: Although Microsoft Word can create and save RTF documents, it is not recommended. Microsoft Word adds large amounts of metadata to the document that is not necessary for Outpost 2, typically increasing a small amount of text from about 3 kb to about 50 kb.
Example RTF file
{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}} {\colortbl ;\red0\green255\blue0;} {\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\cf1\lang9\f0\fs22 Commander,\par \par Resources on this planet can no longer support our operations. Our last chance for survival is launching a starship before the last resources are depleted. We have established our new base at the northern end of Haise Valley. Plymouth has taken control of a mineral rich area 120 kilometers outside of the valley and off your local map display. Plymouth also recently established a small, secondary mining outpost in the southern part of Haise valley.\par \par Both our colony and Plymouth\rquote s colony suffer from the lack of resources. However, Plymouth\rquote s colony still has better resource access than our new base. Your orders are to construct an evacuation starship for 200 colonists and if possible prevent open warfare with Plymouth. So far, we have avoided harsh combat. However, do whatever you must for our survival.\par \par Good Luck Commander,\par Failure is not an option\par \par }
Adding a Resource Script (.rc) File
Microsoft Visual Studio will autogenerate resource script files. Some of the auto-generated content are unnecessary comments.
// Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // English (United States) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // // Dialog // IDD_MISSIONINFO DIALOGEX 0, 0, 282, 250 STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION CAPTION "MISSION INFO" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN DEFPUSHBUTTON "&CONTINUE",IDOK,75,230,130,15 CONTROL "",IDC_TEXTAREA,"RICHEDIT",TCS_HOTTRACK | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_BORDER | WS_VSCROLL | WS_TABSTOP,5,5,270,220 END ///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO // #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO BEGIN IDD_MISSIONINFO, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 275 TOPMARGIN, 7 BOTTOMMARGIN, 243 END END #endif // APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXT // IDR_MISSIONTEXT TEXT "briefing.rtf" ///////////////////////////////////////////////////////////////////////////// // // AFX_DIALOG_LAYOUT // IDD_MISSIONINFO AFX_DIALOG_LAYOUT BEGIN 0 END ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,0 PRODUCTVERSION 1,3,0,5 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x0L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "Outpost Universe" VALUE "FileDescription", "Plymouth Colony Game Starting over" VALUE "FileVersion", "1.0.0.0" VALUE "InternalName", "cOver.dll" VALUE "LegalCopyright", "Copyright (C) 2016" VALUE "OriginalFilename", "cOver" VALUE "ProductName", "Outpost 2" VALUE "ProductVersion", "1.3.0.5" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END #endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED
Resource.h
Microsoft Resource Naming and Numbering Conventions can be reviewed here: https://msdn.microsoft.com/en-us/library/t2zechd4.aspx.
ID Prefix Naming Conventions
Prefix | Use | Recommended Range |
---|---|---|
IDB | Bitmap resource | 101 through 0x6FFF |
IDC | Command identifier, cursor, or control | 101 through 0x6FFF |
IDD | Dialog box resource | 101 through 0x6FFF |
IDI | Icon resource | 101 through 0x6FFF |
IDR | Multiple resource types, possibly common to an entire application or window | 101 through 0x6FFF |
IDS | String resource | 101 through 0x7FFF |
//{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by RisingFromTheAshes.rc // #define IDR_MISSIONTEXT 102 #define IDB_PIC 104 #define IDD_MISSIONINFO 907 #define IDC_TEXTAREA 1001 #define IDC_PIC -1 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 105 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1005 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif
- Go Back to Programming a Scenario
- Go Back to Outpost 2 Mapmaking
- Go Back to Outpost 2 Main page
- Go Back to Wiki Home Page