home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
VSCPPv8.zip
/
VACPP
/
IBMCPP
/
samples
/
TOOLKIT
/
OS2
/
CONSOLIO
/
INIT.C
< prev
next >
Wrap
C/C++ Source or Header
|
1994-11-17
|
7KB
|
280 lines
/*=========================================================================\
* *
* 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
\*--------------------------------------------------------------*/