/
Crimson2/alias/
Crimson2/area.tmp/
Crimson2/area.tmp/AnomalySpaceDock/
Crimson2/area.tmp/AnomalyStation/
Crimson2/area.tmp/AntHill/
Crimson2/area.tmp/ArcticTerrarium/
Crimson2/area.tmp/BuilderCity/
Crimson2/area.tmp/Dungeon/
Crimson2/area.tmp/MiningDock/
Crimson2/area.tmp/PipeSystem/
Crimson2/area.tmp/RattArea/
Crimson2/area.tmp/RobotFactory/
Crimson2/area.tmp/SilverDale/
Crimson2/area.tmp/StarshipFearless/
Crimson2/area.tmp/StationConduits/
Crimson2/area.tmp/TerrariumAlpha/
Crimson2/area.tmp/TerrariumBeta/
Crimson2/area.tmp/TestArea/
Crimson2/area.tmp/Void/
Crimson2/area/
Crimson2/area/AnomalySpaceDock/
Crimson2/area/AnomalyStation/
Crimson2/area/MiningDock/
Crimson2/area/PipeSystem/
Crimson2/area/SilverDale/
Crimson2/area/StationConduits/
Crimson2/area/Void/
Crimson2/board/
Crimson2/clone/
Crimson2/lib/
Crimson2/mole/
Crimson2/mole/mole_src/HELP/
Crimson2/player/
Crimson2/util/
Crimson2/wldedit/
Crimson2/wldedit/res/
// timer.c
// Two-letter Module Descriptor: tm
// ****************************************************************************
// Copyright (C) B. Cameron Lesiuk, 1999. All rights reserved.
// Permission to use/copy this code is granted for non-commercial use only.
// B. Cameron Lesiuk
// Victoria, BC, Canada
// wi961@freenet.victoria.bc.ca
// ****************************************************************************

#include<windows.h>
#include"molem.h"
#include"timer.h"
#include"debug.h"

#define TM_TIMER_ID 1 // Timer ID

/* Globals */
UINT g_tmTimerID;
UINT g_tmTimerPeriod; /* period (ms) for timer event to check status of input nodes.*/
UINT g_tmSetTimerRC; /* Return code from SetTimer routine.*/

BOOL tmInitTimer() {
  g_tmTimerID=TM_TIMER_ID;
  g_tmTimerPeriod=TM_DEFAULT_TIMER_PERIOD;

  g_tmSetTimerRC=SetTimer(g_aahWnd,g_tmTimerID,g_tmTimerPeriod,NULL);

  if (!g_tmSetTimerRC) return FALSE;
  return TRUE;
}

void tmShutdownTimer() {
#ifdef WIN32
  KillTimer(NULL,g_tmSetTimerRC);
#else
  if (g_tmSetTimerRC)
    KillTimer(g_tmSetTimerRC,g_tmTimerID);
#endif
  g_tmSetTimerRC=0;
  return;
}

/* this proc re-installs the timer with the specified period. The previous
 * period is returned. */
UINT tmTimerAdjust(UINT p_newperiod) {
  UINT l_temp;

#ifdef WIN32
  KillTimer(NULL,g_tmSetTimerRC);
#else
  if (g_tmSetTimerRC)
    KillTimer(g_tmSetTimerRC,g_tmTimerID);
#endif

  l_temp=g_tmTimerPeriod;
  g_tmTimerPeriod=p_newperiod;
  g_tmSetTimerRC=SetTimer(g_aahWnd,g_tmTimerID,g_tmTimerPeriod,NULL);
  return l_temp;
}