Skip to content

Commit

Permalink
HOPKINS: Commit of lots more initialisation code
Browse files Browse the repository at this point in the history
  • Loading branch information
dreammaster committed Sep 8, 2012
1 parent 578b160 commit b8086aa
Show file tree
Hide file tree
Showing 9 changed files with 922 additions and 50 deletions.
62 changes: 62 additions & 0 deletions engines/hopkins/events.cpp
@@ -0,0 +1,62 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/

#include "common/system.h"
#include "hopkins/events.h"

namespace Hopkins {

void Mouse::INSTALL_SOURIS() {
// No implementation in original
}

void Mouse::souris_on() {
bool result; // eax@5

souris_flag = true;

if (mouse_linux) {
souris_sizex = 52;
souris_sizey = 32;
} else {
souris_sizex = 34;
souris_sizey = 20;
}

ofset_souris_x = 0;
ofset_souris_y = 0;

if (!CASSE)
souris_xy(300, 200);
else
souris_xy(150, 100);
}

void Mouse::souris_xy(int xp, int yp) {
g_system->warpMouse(xp, yp);
}

void Mouse::souris_max() {
// No implementation in original
}

} // End of namespace Hopkins
53 changes: 53 additions & 0 deletions engines/hopkins/events.h
@@ -0,0 +1,53 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/

#ifndef HOPKINS_EVENTS_H
#define HOPKINS_EVENTS_H

#include "common/scummsys.h"
#include "common/str.h"

namespace Hopkins {

class Mouse {
public:
bool souris_flag;
bool mouse_linux;
int souris_sizex;
int souris_sizey;
int ofset_souris_x;
int ofset_souris_y;
bool CASSE;
int souris_n;
int souris_bb;
int souris_b;
void *pointeur_souris;
public:
void INSTALL_SOURIS();
void souris_on();
void souris_xy(int xp, int yp);
void souris_max();
};

} // End of namespace Hopkins

#endif /* HOPKINS_EVENTS_H */
38 changes: 36 additions & 2 deletions engines/hopkins/files.cpp
Expand Up @@ -98,7 +98,7 @@ void FileManager::Chage_Inifile(Common::StringMap &iniParams) {
free(iniData);
}

void *FileManager::CHARGE_FICHIER(const Common::String &file) {
byte *FileManager::CHARGE_FICHIER(const Common::String &file) {
DMESS1();

Common::File f;
Expand All @@ -107,7 +107,7 @@ void *FileManager::CHARGE_FICHIER(const Common::String &file) {

// Allocate space for the file contents
size_t filesize = f.size();
void *data = malloc(filesize);
byte *data = (byte *)malloc(filesize);
if (!data)
error("Error allocating space for file being loaded - %s", file.c_str());

Expand All @@ -124,4 +124,38 @@ int FileManager::bload_it(Common::ReadStream &stream, void *buf, size_t nbytes)
return stream.read(buf, nbytes);
}

void FileManager::F_Censure() {
GLOBALS.CENSURE = false;

CONSTRUIT_SYSTEM("BLOOD.DAT");
char *data = (char *)CHARGE_FICHIER(GLOBALS.NFICHIER);

if (*(data + 6) == 'f' && *(data + 7) == 'r')
GLOBALS.CENSURE = false;
if (*(data + 6) == 'F' && *(data + 7) == 'R')
GLOBALS.CENSURE = false;
if (*(data + 6) == 'u' && *(data + 7) == 'k')
GLOBALS.CENSURE = true;
if (*(data + 6) == 'U' && *(data + 7) == 'K')
GLOBALS.CENSURE = true;

free(data);
}

int FileManager::CONSTRUIT_SYSTEM(const Common::String &file) {
GLOBALS.NFICHIER = Common::String::format("system/%s", file.c_str());
return GLOBALS.NFICHIER.size();
}

void FileManager::CONSTRUIT_FICHIER(const Common::String &hop, const Common::String &file) {
// At this point, the original program did a big switch statement to determine
// whether to preprend the CD or installed directory path into REPJEU

if (hop[0] == 'A' && hop[1] == 'N' && hop[2] == 'N') {
error("TODO: CONSTRUIT_FICHIER");
}

GLOBALS.NFICHIER = Common::String::format("%s/%s", hop.c_str(), file.c_str());
}

} // End of namespace Hopkins
5 changes: 4 additions & 1 deletion engines/hopkins/files.h
Expand Up @@ -36,9 +36,12 @@ class FileManager {
static bool SAUVE_FICHIER(const Common::String &file, const void *buf, size_t n);
static bool bsave(const Common::String &file, const void *buf, size_t n);
static void Chage_Inifile(Common::StringMap &iniParams);
static void *CHARGE_FICHIER(const Common::String &file);
static byte *CHARGE_FICHIER(const Common::String &file);
static void DMESS1();
static int bload_it(Common::ReadStream &stream, void *buf, size_t nbytes);
static void F_Censure();
static int CONSTRUIT_SYSTEM(const Common::String &file);
static void CONSTRUIT_FICHIER(const Common::String &hop, const Common::String &file);
};

} // End of namespace Hopkins
Expand Down

0 comments on commit b8086aa

Please sign in to comment.