home *** CD-ROM | disk | FTP | other *** search
- /*=========================================================================\
- * *
- * FILE:init.c *
- * *
- * DESCRIPTION: This file handles all initialization necessary *
- * for the worms program *
- * *
- * Copyright 1992 IBM Corp. *
- * *
- * DISCLAIMER OF WARRANTIES. The following [enclosed] code is *
- * sample code created by IBM Corporation. This sample code is not *
- * part of any standard or IBM product and is provided to you solely *
- * for the purpose of assisting you in the development of your * *
- * applications. The code is provided "AS IS", without *
- * warranty of any kind. IBM shall not be liable for any damages *
- * arising out of your use of the sample code, even if they have been *
- * advised of the possibility of such damages. * *
- *-------------------------------------------------------------------------*
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *--------------------------------------------------------------
- *
- * This source file contains the following functions:
- *
- *
- * Init()
- *
- *
- \*==============================================================*/
-
- /*--------------------------------------------------------------*\
- * Include files, macros, defined constants, and externs
- \*--------------------------------------------------------------*/
- #define INCL_VIO
- #define INCL_DOSPROCESS
- #define INCL_MOU
- #define INCL_DOSSEMAPHORES
-
- #include <os2.h>
- #include <stdlib.h>
- #include "worms.h"
- #include "disp.h"
- #include "init.h"
- #include "wmouse.h"
-
-
-
-
- /*--------------------------------------------------------------*\
- * Global variables and definitions for this file
- \*--------------------------------------------------------------*/
-
- #define CREATE_MOUSE 1
- #define STACK_SIZE_MOUTHRD 32768
- #define WORM_SEM_NAME NULL
- #define WORM_DRAW_NAME NULL
- HEV hevWormSem;
- HEV hevDrawSem;
- HEV hevDrawOk;
-
-
-
-
-
- /*--------------------------------------------------------------*\
- * Entry point declarations
- \*--------------------------------------------------------------*/
-
- BOOL
- create_wmThread(VOID );
-
- BOOL bStartWorms(VOID );
- /****************************************************************\
- * Routine Name:Init()
- *--------------------------------------------------------------
- *
- * Name:
- *
- * Purpose:
- *
- *
- *
- * Usage:
- *
- * Method:
- * -
- *
- * -
- * -
- *
- * -
- * -
- *
- * Returns:
- * TRUE - Error Occurred
- * FALSE - No error occurred
- \****************************************************************/
- BOOL
- Init(PSHORT psErrorMessage)
- {
- BOOL fError = FALSE;
- VIOCURSORINFO viociTemp;
-
- /*
- *get the current configuration
- */
- VioModeInfo.cb = sizeof(VioModeInfo);
- VioGetMode(&VioModeInfo,hvio );
-
- /*
- *save the cursor type
- */
- VioGetCurType(&viociCursor,hvio);
- VioGetCurType(&viociTemp,hvio);
-
- /*
- *turn off the cursor
- */
- viociTemp.attr = 0xFFFF;
- VioSetCurType(&viociTemp,hvio);
-
-
-
- /*
- *display the main default window
- */
- WindMainDisp();
-
- if(create_wmThread() )
- {
- ErrorMessage(ERROR_CREATING_WREADTHRD,TRUE);
- }
-
- /*
- *create a general purpose
- *semaphore
- */
- if(DosCreateEventSem(WORM_SEM_NAME,
- &hevWormSem,
- 0,
- FALSE ) )
- {
- fError = TRUE;
- }
- /*
- *create a sem
- *to contro the threads that
- *draw to the screen
- */
- if(DosCreateEventSem(WORM_DRAW_NAME,
- &hevDrawSem,
- 0,
- TRUE) )
- {
- fError = TRUE;
- }
-
- if(DosCreateEventSem(NULL,
- &hevDrawOk,
- DC_SEM_SHARED,
- FALSE ) )
- {
- fError = TRUE;
- }
-
- /*
- *start up
- *the number of worms
- *specified on the command
- *line
- */
- bStartWorms();
-
- return(fError);
-
- }
- /****************************************************************\
- *
- *--------------------------------------------------------------
- *
- * Name:create_wmThread()
- *
- * Purpose:
- *
- *
- *
- * Usage:
- *
- * Method:
- * -
- *
- * -
- * -
- *
- * -
- * -
- *
- * Returns:
- * FALSE - if sucessful execution completed
- * TRUE - if error
- \****************************************************************/
- BOOL
- create_wmThread(VOID )
- {
- SHORT sValue;
-
- if( _beginthread( WReadMouse,
- NULL,
- STACK_SIZE_MOUTHRD,
- &sValue) == -1 )
- {
- return(TRUE);
- }
-
- return(FALSE);
-
-
- }
- /****************************************************************\
- *
- *--------------------------------------------------------------
- *
- * Name:bStartWorms()
- *
- * Purpose:Kick off the number off worms that was specified on the command
- * line
- *
- *
- *
- * Usage:
- *
- * Method:
- * -
- *
- * -
- * -
- *
- * -
- * -
- *
- * Returns:
- * TRUE - An error occurred
- * FALSE - No error occurred
- \****************************************************************/
- BOOL bStartWorms(VOID )
- {
-
- USHORT usWorms;
-
-
- for(usWorms = 0; usWorms < sStartWorms;usWorms ++ )
- {
- if( WormCreate() )
- {
- return(TRUE);
-
- }
- }
- return(FALSE);
- }
-
-
-
-
-
-
-
- /*--------------------------------------------------------------*\
- * End of file : init.c
- \*--------------------------------------------------------------*/
-