Skip to content
Snippets Groups Projects
Commit b86dd7d4 authored by Jumbo's avatar Jumbo
Browse files

storyboard struct update

parent 51a7de05
No related branches found
No related tags found
No related merge requests found
...@@ -17,7 +17,7 @@ typedef struct __attribute__((__packed__)) hit_circle_t{ ...@@ -17,7 +17,7 @@ typedef struct __attribute__((__packed__)) hit_circle_t{
uint16_t approach_rate; uint16_t approach_rate;
uint16_t gradient_color1; uint16_t gradient_color1;
uint16_t gradient_color2; uint16_t gradient_color2;
uint8_t gradient_direction; uint8_t hit_sound;
char type; char type;
} elem_hit_circle; } elem_hit_circle;
......
...@@ -62,7 +62,7 @@ int osu_parse_hit_object(char* line, osu_song* song){ ...@@ -62,7 +62,7 @@ int osu_parse_hit_object(char* line, osu_song* song){
//hit sound //hit sound
//elemn->hit_sound = stoi(v[4]); // //elemn->hit_sound = stoi(v[4]); //
// elemn->hit_sound = 1; // TODO sscanf(v[4].c_str(),"%c",&(elemn->hit_sound)); //
//handle timing stuff //handle timing stuff
int temp_c = 0; int temp_c = 0;
...@@ -79,15 +79,19 @@ int osu_parse_hit_object(char* line, osu_song* song){ ...@@ -79,15 +79,19 @@ int osu_parse_hit_object(char* line, osu_song* song){
} }
//update count and data block //update count and data block
if (!song->storyboard){ if (!song->storyboard){
song->storyboard = (uint8_t *) malloc(4+4+32*temp_c); song->storyboard = (osu_storyboard*) malloc(sizeof(osu_storyboard));
*((uint32_t*)(song->storyboard)) = 0b01110010011001010110000101101100; /**((uint32_t*)(song->storyboard)) = 0b01110010011001010110000101101100;
*((uint32_t*)(song->storyboard)+1) = temp_c; *((uint32_t*)(song->storyboard)+1) = temp_c;
memcpy(song->storyboard+8,elemn,32*temp_c); memcpy(song->storyboard+8,elemn,32*temp_c);*/
song->storyboard->magic = 0b01110010011001010110000101101100;
song->storyboard->object_number = temp_c;
}else{ }else{
song->storyboard = (uint8_t *) realloc(song->storyboard,4+4+ /*song->storyboard = (uint8_t *) realloc(song->storyboard,4+4+
32*(temp_c+(*((uint32_t*)(song->storyboard)+1)))); 32*(temp_c+(*((uint32_t*)(song->storyboard)+1))));
memcpy(song->storyboard+8+32*(*((uint32_t*)(song->storyboard)+1)),elemn,32*temp_c); memcpy(song->storyboard+8+32*(*((uint32_t*)(song->storyboard)+1)),elemn,32*temp_c);
*((uint32_t*)(song->storyboard)+1) += temp_c; *((uint32_t*)(song->storyboard)+1) += temp_c;*/
memcpy(object_list,elemn,temp_c*sizeof(elem_hit_circle))
song->storyboard->object_number += temp_c;
} }
free(elemn); free(elemn);
return 0; return 0;
......
...@@ -16,7 +16,7 @@ extern "C" { ...@@ -16,7 +16,7 @@ extern "C" {
#include <stdio.h> #include <stdio.h>
#include <inttypes.h> #include <inttypes.h>
#include "blkio.h" #include "blkio.h"
#include "osu_object_analyze/osu_object_includes.h"
typedef struct __attribute__((__packed__)) osu_meta_t { typedef struct __attribute__((__packed__)) osu_meta_t {
char magic[4]; // 0 - 3 char magic[4]; // 0 - 3
...@@ -228,7 +228,7 @@ extern "C" { ...@@ -228,7 +228,7 @@ extern "C" {
uint16_t stack_leniency; // 78 - 79 uint16_t stack_leniency; // 78 - 79
//for analyze side only //for analyze side only
uint8_t *storyboard; // 80 - 87 osu_storyboard *storyboard; // 80 - 87
uint8_t combo_colors_count; // 88 uint8_t combo_colors_count; // 88
uint8_t combo_colors_start; // 89 uint8_t combo_colors_start; // 89
uint8_t combo_slider_color[3]; // 90 - 92 uint8_t combo_slider_color[3]; // 90 - 92
...@@ -241,7 +241,14 @@ extern "C" { ...@@ -241,7 +241,14 @@ extern "C" {
char creator[32]; // 448 - 479 char creator[32]; // 448 - 479
char version[32]; // 480 - 511 char version[32]; // 480 - 511
} osu_song; } osu_song;
typedef struct __attribute__((__packed__)) storyboard_t {
uint32_t magic; //4
uint32_t object_number; //4
elem_hit_circle object_list[65535]; //fill a total of 4096 blocks
char _padding[24]; //32-8 = 24
} osu_storyboard;
osu_meta osu_read_meta(mdev *dev); osu_meta osu_read_meta(mdev *dev);
osu_song osu_read_song(mdev *dev, int idx); osu_song osu_read_song(mdev *dev, int idx);
void osu_write_meta(mdev *dev, osu_meta *meta); void osu_write_meta(mdev *dev, osu_meta *meta);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment