Some progress
This commit is contained in:
42
items/item.c
42
items/item.c
@@ -108,11 +108,11 @@ void registerItem(char name[20], SDL_Renderer *renderer) {
|
||||
memcpy(ItemRegistry[itemRegistryIndex].name, name, dot - name);
|
||||
char texturePath[80];
|
||||
snprintf(texturePath, 80, "./assets/items/%s", name);
|
||||
ItemRegistry[itemRegistryIndex].texture = IMG_LoadTexture(renderer, texturePath);
|
||||
SDL_SetTextureBlendMode(ItemRegistry[itemRegistryIndex].texture, SDL_BLENDMODE_BLEND);
|
||||
ItemRegistry[itemRegistryIndex].textureOnBelt = ScaleTexture(renderer, ItemRegistry[itemRegistryIndex].texture,
|
||||
ItemRegistry[itemRegistryIndex].texture[ORIENT_LEFT] = IMG_LoadTexture(renderer, texturePath);
|
||||
SDL_SetTextureBlendMode(ItemRegistry[itemRegistryIndex].texture[0], SDL_BLENDMODE_BLEND);
|
||||
ItemRegistry[itemRegistryIndex].textureOnBelt[ORIENT_LEFT] = ScaleTexture(renderer, ItemRegistry[itemRegistryIndex].texture[ORIENT_LEFT],
|
||||
TILE_SIZE / 2, TILE_SIZE / 2);
|
||||
SDL_SetTextureBlendMode(ItemRegistry[itemRegistryIndex].textureOnBelt, SDL_BLENDMODE_BLEND);
|
||||
SDL_SetTextureBlendMode(ItemRegistry[itemRegistryIndex].textureOnBelt[ORIENT_LEFT], SDL_BLENDMODE_BLEND);
|
||||
ItemRegistry[itemRegistryIndex].type = itemRegistryIndex;
|
||||
|
||||
itemRegistryIndex++;
|
||||
@@ -248,12 +248,12 @@ void renderItem(ItemOnBelt item, SDL_Renderer *renderer, int lane) {
|
||||
adjustRect(&rect);
|
||||
|
||||
// (Optional debug overlay)
|
||||
SDL_Rect tileArea = {item.tileX * TILE_SIZE, item.tileY * TILE_SIZE,
|
||||
TILE_SIZE, TILE_SIZE};
|
||||
SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);
|
||||
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 32);
|
||||
adjustRect(&tileArea);
|
||||
SDL_RenderFillRect(renderer, &tileArea);
|
||||
// SDL_Rect tileArea = {item.tileX * TILE_SIZE, item.tileY * TILE_SIZE,
|
||||
// TILE_SIZE, TILE_SIZE};
|
||||
// SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);
|
||||
// SDL_SetRenderDrawColor(renderer, 255, 0, 0, 32);
|
||||
// adjustRect(&tileArea);
|
||||
// SDL_RenderFillRect(renderer, &tileArea);
|
||||
|
||||
char tempStr[50];
|
||||
|
||||
@@ -267,11 +267,8 @@ void renderItem(ItemOnBelt item, SDL_Renderer *renderer, int lane) {
|
||||
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 32);
|
||||
adjustRect(&rectA);
|
||||
SDL_RenderFillRect(renderer, &rectA);
|
||||
SDL_RenderCopy(renderer, ItemRegistry[item.type].textureOnBelt, NULL, &rect);
|
||||
SDL_Texture *oldRenderTarget = SDL_GetRenderTarget(renderer);
|
||||
SDL_SetRenderTarget(renderer, NULL);
|
||||
SDL_RenderCopy(renderer, ItemRegistry[item.type].textureOnBelt[ORIENT_LEFT], NULL, &rect);
|
||||
renderText(renderer, fonts[3], tempStr, rectA.x, rectA.y);
|
||||
SDL_SetRenderTarget(renderer, oldRenderTarget);
|
||||
}
|
||||
|
||||
void renderBeltItems(SDL_Renderer *renderer) {
|
||||
@@ -287,6 +284,23 @@ void putItem(int x, int y, uint16_t itemType, uint8_t lane, uint8_t itemIndex) {
|
||||
}
|
||||
|
||||
void loadItems(SDL_Renderer *renderer) {
|
||||
for(int i = 0; i < tileTypeIndex; i++) {
|
||||
TileType tile = TileRegistry[i];
|
||||
|
||||
strcpy(ItemRegistry[itemRegistryIndex].name, tile.name);
|
||||
memcpy(ItemRegistry[itemRegistryIndex].texture, tile.textures, sizeof (tile.textures));
|
||||
for (int a = 0; a < ORIENT_DIRECTION_COUNT; a++) {
|
||||
SDL_SetTextureBlendMode(ItemRegistry[itemRegistryIndex].texture[a], SDL_BLENDMODE_BLEND);
|
||||
ItemRegistry[itemRegistryIndex].textureOnBelt[a] = ScaleTexture(renderer, tile.textures[a],
|
||||
TILE_SIZE / 2, TILE_SIZE / 2);
|
||||
SDL_SetTextureBlendMode(ItemRegistry[itemRegistryIndex].textureOnBelt[a], SDL_BLENDMODE_BLEND);
|
||||
}
|
||||
ItemRegistry[itemRegistryIndex].type = itemRegistryIndex;
|
||||
|
||||
itemRegistryIndex++;
|
||||
}
|
||||
|
||||
|
||||
DIR *dir = opendir("./assets/items");
|
||||
if (dir) {
|
||||
struct dirent *entry;
|
||||
|
Reference in New Issue
Block a user