From 1192c4575ea7afdf38e3fa0df4587a08620af11e Mon Sep 17 00:00:00 2001 From: root Date: Tue, 21 Jul 2020 10:00:46 +0200 Subject: SZS v2.18a --- project/src/lib-rkg.h | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 project/src/lib-rkg.h (limited to 'project/src/lib-rkg.h') diff --git a/project/src/lib-rkg.h b/project/src/lib-rkg.h new file mode 100644 index 0000000..0f4de23 --- /dev/null +++ b/project/src/lib-rkg.h @@ -0,0 +1,120 @@ + +/*************************************************************************** + * _______ _______ _______ * + * | ___ |____ | ___ | * + * | | |_| / /| | |_| * + * | |_____ / / | |_____ * + * |_____ | / / |_____ | * + * _ | | / / _ | | * + * | |___| |/ /____| |___| | * + * |_______|_______|_______| * + * * + * Wiimms SZS Tools * + * https://szs.wiimm.de/ * + * * + *************************************************************************** + * * + * This file is part of the SZS project. * + * Visit https://szs.wiimm.de/ for project details and sources. * + * * + * Copyright (c) 2011-2020 by Dirk Clemens * + * * + *************************************************************************** + * * + * 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. * + * * + * See file gpl-2.0.txt or http://www.gnu.org/licenses/gpl-2.0.txt * + * * + ***************************************************************************/ + +/////////////////////////////////////////////////////////////////////////////// + +#ifndef SZS_LIB_RKD_H +#define SZS_LIB_RKD_H 1 + +//#include "lib-std.h" +#include "lib-szs.h" + +// +/////////////////////////////////////////////////////////////////////////////// +/////////////// definitions /////////////// +/////////////////////////////////////////////////////////////////////////////// + +#define RKG_MAGIC "RKGD" +#define RKG_MAGIC_NUM 0x524b4744 + +// +/////////////////////////////////////////////////////////////////////////////// +/////////////// struct rkg_head_t /////////////// +/////////////////////////////////////////////////////////////////////////////// +// [[rkg_head_t]] +// http://wiki.tockdom.com/wiki/RKG + +typedef struct rkg_head_t +{ + /* 0x00 */ u32 magic; // RKG_MAGIC_NUM + /* 0x04 */ u8 score[3]; // 7:min 7:sec 10:milli + /* 0x07 */ u8 track_id; + /* 0x08 */ u32 id; // different IDs + /* 0x0c */ u16 type; + /* 0x0e */ u16 data_size; // decompressed data size + /* 0x10 */ u8 any_data[0x88-0x10]; + /* 0xxx */ + /* 0x88 */ +} +__attribute__ ((packed)) rkg_head_t; + +// +/////////////////////////////////////////////////////////////////////////////// +/////////////// struct rkg_info_t /////////////// +/////////////////////////////////////////////////////////////////////////////// +// [[rkg_info_t]] + +typedef struct rkg_info_t +{ + bool valid; // true: data is valid + ccp error; // not NULL: error message + u32 score; // time in msec + + uint data_size; // input data size + bool is_compressed; // true: data is compressed + + uint n_but; + uint n_dir; + uint n_trick; + + uint time_but; + uint time_dir; + uint time_trick; +} +rkg_info_t; + +/////////////////////////////////////////////////////////////////////////////// + +static inline void InitializeRKGInfo ( rkg_info_t *ri ) + { DASSERT(ri); memset(ri,0,sizeof(*ri)); } + +static inline void ResetRKGInfo ( rkg_info_t *ri ) + { DASSERT(ri); memset(ri,0,sizeof(*ri)); } + +enumError ScanRawDataGHOST +( + rkg_info_t * ri, // RKG info + bool init_ri, // true: initialize 'ri' first + struct raw_data_t * raw // valid raw data +); + +// +/////////////////////////////////////////////////////////////////////////////// +/////////////// END /////////////// +/////////////////////////////////////////////////////////////////////////////// + +#endif // SZS_LIB_MDL_H -- cgit v1.3.1