OSDN Git Service

[STATE][FILEIO] Add StateValue(scrntype_t&).
authorK.Ohta <whatisthis.sowhat@gmail.com>
Wed, 24 Oct 2018 16:15:45 +0000 (01:15 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Wed, 24 Oct 2018 16:15:45 +0000 (01:15 +0900)
source/src/fileio.cpp
source/src/fileio.h

index e45d651..ac86acf 100644 (file)
@@ -1138,6 +1138,27 @@ void FILEIO::StateValue(_TCHAR &val)
        }
 }
 
+// 20181025 K.O
+// Note: scrntype_t is variable size type.2 bytes@15/16bpp, 4bytes@24/32bpp.
+void FILEIO::StateValue(scrntype_t &val)
+{
+       uint8_t r, g, b;
+       if(open_mode == FILEIO_READ_BINARY) {
+               r = FgetUint8();
+               g = FgetUint8();
+               b = FgetUint8();
+               val = RGB_COLOR(r, g, b);
+       } else {
+               r = R_OF_COLOR(val);
+               g = G_OF_COLOR(val);
+               b = B_OF_COLOR(val);
+               FputUint8(r);
+               FputUint8(g);
+               FputUint8(b);
+       }
+}
+
+
 void FILEIO::StateArray(bool *buffer, size_t size, size_t count)
 {
        for(unsigned int i = 0; i < size / sizeof(buffer[0]) * count; i++) {
@@ -1243,6 +1264,16 @@ void FILEIO::StateArray(_TCHAR *buffer, size_t size, size_t count)
        }
 }
 
+// 20181025 K.O
+// Note: scrntype_t is variable size type.2 bytes@15/16bpp, 4bytes@24/32bpp.
+void FILEIO::StateArray(scrntype_t *buffer, size_t size, size_t count)
+{
+       for(unsigned int i = 0; i < size / sizeof(buffer[0]) * count; i++) {
+               StateValue(buffer[i]);
+       }
+}
+
+
 void FILEIO::StateBuffer(void *buffer, size_t size, size_t count)
 {
        if(open_mode == FILEIO_READ_BINARY) {
index 25e4ca9..0ad6e94 100644 (file)
@@ -167,6 +167,7 @@ public:
        void StateValue(float &val);
        void StateValue(double &val);
        void StateValue(_TCHAR &val);
+       void StateValue(scrntype_t &val);
        
        void StateArray(bool *buffer, size_t size, size_t count);
        void StateArray(uint8_t *buffer, size_t size, size_t count);
@@ -183,6 +184,7 @@ public:
        void StateArray(float *buffer, size_t size, size_t count);
        void StateArray(double *buffer, size_t size, size_t count);
        void StateArray(_TCHAR *buffer, size_t size, size_t count);
+       void StateArray(scrntype_t *buffer, size_t size, size_t count);
        
        // obsolete function
        void StateBuffer(void *buffer, size_t size, size_t count);