If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

GeoSafari Geography

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

GeoSafari Geography

Publisher: Educational Insights
Platforms: Windows, Mac OS Classic


SourceIcon.png This game has uncompiled source code.
DevTextIcon.png This game has hidden development-related text.


So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?

GeoSafari Geography is an educational geography game in the GeoSafari line of products. It was released sometime in the second half of the 1990s, with varying accounts reporting 1995, 1997, or 1999.

Cached Source Code

There are two cache.cst files in the ISO, apparently used as a binary cache. The one in the root directory contains snippets of source code written in AppleScript, including comments and debug messages, interspersed with binary data. As there are almost 3,000 such lines of source code, only one snippet is reproduced below as an example.

 on SetpFlashing me, val
   -- DEBUG 1 line
   -- put "button in sprite "&string(GetSpriteNum(me))&" just got set pFlashing message val = "&string(val)
   
   set pFlashing to val
   if pFlashing then
     set pLastFlash to the ticks
     set pFlashingSuspended to FALSE
   else
     Unhilite(me, FALSE)
   end if
 end
 
 on SuspendFlashing me
   set pFlashingSuspended to TRUE
 end
 
 on ResumeFlashing me
   set pFlashingSuspended to FALSE
 end
 
 on SetpFlashStopTime me, val
   set pFlashStopTime to integer(val)
 end
 
 on stepFrame me
   if pFlashing then
     if not pFlashingSuspended then
       if pFlashStopTime > 0 and the ticks > pFlashStopTime then
         -- stop flashing
         set pFlashing to FALSE
         Unhilite(me, FALSE)
         set pFlashStopTime to 0
       else
         if pLastFlash + pFlashTime < the ticks then
           set pLastFlash to the ticks
           ToggleHilite(me, pUpdateWhenFlashing)
         end if
       end if
     end if
   end if
 end
 
 on TrackMouse me
   put TrackMouse(ancestor) into clicked
   if clicked then
     set pFlashing to FALSE
     UnHilite(me, FALSE)
   end if
   
   return clicked
 end