src/level.c
author Tampax86
Thu, 17 Jul 2025 22:03:19 -0400
changeset 0 b2e3aa63e96c
permissions -rw-r--r--
First commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     1
#include <stdio.h>
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     2
#include "common.h"
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     3
#include <SDL2/SDL.h>
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     4
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     5
typedef struct
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     6
{
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     7
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     8
}
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
     9
Image;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    10
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    11
void loadLevelFromFile()
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    12
{
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    13
    Image img;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    14
    FILE* imageFile;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    15
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    16
    imageFile = fopen("img/nhhs.ppm", "rb");
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    17
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    18
    int whiteSpaces = 0;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    19
    int lineCount = 0;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    20
    int pixelCount = 0;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    21
    if(imageFile)
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    22
    {
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    23
        unsigned char byte;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    24
        SDL_Color color = {0, 0, 0, 255};
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    25
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    26
        while(fread(&byte, 1, 1, imageFile))
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    27
        {
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    28
            if(whiteSpaces == 4)
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    29
            {
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    30
                if(lineCount == 0) color.r = byte;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    31
                if(lineCount == 1) color.g = byte;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    32
                if(lineCount == 2) color.b = byte;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    33
                lineCount ++;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    34
                if(lineCount >= 3)
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    35
                {
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    36
                    lineCount = 0;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    37
                    levelTiles[pixelCount] = (color.g == 255) ? (color.r == 0 ? 'G' : ' ') : (color.r == 255) ? ' ' : (color.r == 85) ? 'A' : (color.b == 191) ? 'S' : '#';
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    38
                    pixelCount ++;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    39
                    /*printf("Color: %02x, %02x, %02x\n", color.r, color.g, color.b);*/
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    40
                }
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    41
            }
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    42
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    43
            if(byte == 10) whiteSpaces ++;
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    44
        }
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    45
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    46
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    47
        putchar('\n');
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    48
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    49
    }
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    50
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    51
    fclose(imageFile);
b2e3aa63e96c First commit
Tampax86
parents:
diff changeset
    52
}