Add level signage

This commit is contained in:
James Lambert 2022-05-28 17:49:03 -06:00
parent 278214b0b2
commit 4956892ae1
13 changed files with 144 additions and 9 deletions

View file

@ -110,6 +110,15 @@ $(TEXTURE_VTF_SOURCES): portal_pak_dir
convert_all_png: $(ALL_PNG_IMAGES) convert_all_png: $(ALL_PNG_IMAGES)
portal_pak_dir/%_copy_0.png: portal_pak_dir/%.png
cp $< $@
portal_pak_dir/%_copy_1.png: portal_pak_dir/%.png
cp $< $@
portal_pak_dir/%_copy_2.png: portal_pak_dir/%.png
cp $< $@
portal_pak_modified/%.png: portal_pak_dir/%.png assets/%.ims portal_pak_modified/%.png: portal_pak_dir/%.png assets/%.ims
@mkdir -p $(@D) @mkdir -p $(@D)
convert $< $(shell cat $(@:portal_pak_modified/%.png=assets/%.ims)) $@ convert $< $(shell cat $(@:portal_pak_modified/%.png=assets/%.ims)) $@

View file

@ -0,0 +1 @@
-alpha extract \( +clone -crop 682x342+682+0 \) -gravity west -append -crop 682x1364+0+0 -resize 64x128

View file

@ -0,0 +1 @@
-alpha extract -crop 154x1024+1894+0 -resize 32x212

View file

@ -0,0 +1,20 @@
-alpha extract
\( +clone -crop 436x146+1061+438 -rotate 90 \) -insert 0
\( +clone -crop 146x436+1463+147 \) -insert 1
\( +clone -crop 146x436+1609+147 \) -insert 2
\( +clone -crop 146x436+1755+147 \) -insert 3
\( +clone -crop 146x436+1025+583 \) -insert 4
\( +clone -crop 146x436+1171+583 \) -insert 5
\( +clone -crop 146x436+1317+583 \) -insert 6
\( +clone -crop 146x436+1463+583 \) -insert 7
\( +clone -crop 146x436+1609+583 \) -insert 8
\( +clone -crop 146x436+1755+583 \) -insert 9
+append
+repage
-crop 1460x436+0+0
-fill black
-background black
-draw 'rectangle 141,310 189,424'
-draw 'rectangle 1447,337 1460,404'
-resize 140x
-extent 144x

View file

@ -0,0 +1 @@
-alpha extract -crop 342x682+682+342 -resize 32x64

View file

@ -0,0 +1 @@
-alpha remove -crop 50x50+21+20 -resize 16x16

View file

@ -186,3 +186,97 @@ materials:
set: [G_LIGHTING, G_SHADE] set: [G_LIGHTING, G_SHADE]
gDPSetCombineMode: gDPSetCombineMode:
color: ["SHADE", "0", "TEXEL0", "0"] color: ["SHADE", "0", "TEXEL0", "0"]
newsignage_back02:
gDPSetTile:
filename: ../../portal_pak_modified/materials/models/props_animsigns/newsignage_back02.png
siz: G_IM_SIZ_4b
twoTone: true
s:
wrap: false
t:
wrap: false
gSPGeometryMode:
clear: [G_LIGHTING]
gDPSetCycleType: G_CYC_1CYCLE
awe_total:
gDPSetTile:
filename: ../../portal_pak_modified/materials/models/props_animsigns/awe_total.png
siz: G_IM_SIZ_4b
fmt: G_IM_FMT_I
gDPSetRenderMode: G_RM_ZB_OPA_DECAL
gSPGeometryMode:
clear: [G_LIGHTING]
set: [G_SHADE]
gDPSetCombineMode:
color: [SHADE, PRIMITIVE, TEXEL0, PRIMITIVE]
gDPSetPrimColor:
r: 242
g: 245
b: 247
gDPSetCycleType: G_CYC_1CYCLE
awe_total_copy_0:
gDPSetTile:
filename: ../../portal_pak_modified/materials/models/props_animsigns/awe_total_copy_0.png
siz: G_IM_SIZ_4b
fmt: G_IM_FMT_I
gDPSetRenderMode: G_RM_ZB_OPA_DECAL
gSPGeometryMode:
clear: [G_LIGHTING]
set: [G_SHADE]
gDPSetCombineMode:
color: [SHADE, PRIMITIVE, TEXEL0, PRIMITIVE]
gDPSetPrimColor:
r: 242
g: 245
b: 247
gDPSetCycleType: G_CYC_1CYCLE
awe_total_copy_1:
gDPSetTile:
filename: ../../portal_pak_modified/materials/models/props_animsigns/awe_total_copy_1.png
siz: G_IM_SIZ_4b
fmt: G_IM_FMT_I
gDPSetRenderMode: G_RM_ZB_OPA_DECAL
gSPGeometryMode:
clear: [G_LIGHTING]
set: [G_SHADE]
gDPSetCombineMode:
color: [SHADE, PRIMITIVE, TEXEL0, PRIMITIVE]
gDPSetPrimColor:
r: 242
g: 245
b: 247
gDPSetCycleType: G_CYC_1CYCLE
awe_total_copy_2:
gDPSetTile:
filename: ../../portal_pak_modified/materials/models/props_animsigns/awe_total_copy_2.png
siz: G_IM_SIZ_4b
fmt: G_IM_FMT_I
gDPSetRenderMode: G_RM_ZB_OPA_DECAL
gSPGeometryMode:
clear: [G_LIGHTING]
set: [G_SHADE]
gDPSetCombineMode:
color: [SHADE, PRIMITIVE, TEXEL0, PRIMITIVE]
gDPSetPrimColor:
r: 242
g: 245
b: 247
gDPSetCycleType: G_CYC_1CYCLE
vertex_color:
gDPSetCombineMode:
color: ["0", "0", "0", SHADE]
gDPSetCycleType: G_CYC_1CYCLE
gSPGeometryMode:
clear: [G_LIGHTING]
set: [G_SHADE]

Binary file not shown.

View file

@ -16,10 +16,14 @@ int sortOrderForMaterial(const Material& material) {
return 0; return 0;
} }
if (material.mState.cycle1RenderMode.data & FORCE_BL) { if (material.mState.cycle1RenderMode.GetZMode() == ZMODE_DEC) {
return 1; return 1;
} }
if (material.mState.cycle1RenderMode.data & FORCE_BL) {
return 2;
}
return 0; return 0;
} }

View file

@ -44,6 +44,8 @@ void MeshDefinitionGenerator::AppendRenderChunks(const aiScene* scene, aiNode* n
if (material != settings.mMaterials.end()) { if (material != settings.mMaterials.end()) {
materialPtr = material->second.get(); materialPtr = material->second.get();
} else {
std::cout << "Could not find material with name " << materialName << std::endl;
} }
double sTile; double sTile;

View file

@ -25,21 +25,23 @@ void StaticGenerator::GenerateDefinitions(const aiScene* scene, CFileDefinition&
for (auto node = mIncludedNodes.begin(); node != mIncludedNodes.end(); ++node) { for (auto node = mIncludedNodes.begin(); node != mIncludedNodes.end(); ++node) {
std::vector<RenderChunk> renderChunks; std::vector<RenderChunk> renderChunks;
MeshDefinitionGenerator::AppendRenderChunks(scene, *node, fileDefinition, mSettings, renderChunks); MeshDefinitionGenerator::AppendRenderChunks(scene, *node, fileDefinition, mSettings, renderChunks);
if (renderChunks.size()) { for (auto& chunk : renderChunks) {
StaticContentElement element; StaticContentElement element;
if (renderChunks[0].mMaterial) { if (chunk.mMaterial) {
settings.mDefaultMaterialState = renderChunks[0].mMaterial->mState; settings.mDefaultMaterialState = chunk.mMaterial->mState;
element.materialName = MaterialGenerator::MaterialIndexMacroName(renderChunks[0].mMaterial->mName); element.materialName = MaterialGenerator::MaterialIndexMacroName(chunk.mMaterial->mName);
} else { } else {
element.materialName = "0"; element.materialName = "0";
} }
element.meshName = generateMesh(scene, fileDefinition, renderChunks, settings, "_geo"); std::vector<RenderChunk> singleChunk;
singleChunk.push_back(chunk);
element.meshName = generateMesh(scene, fileDefinition, singleChunk, settings, "_geo");
elements.push_back(element); elements.push_back(element);
mOutput.staticMeshes.push_back(renderChunks[0].mMesh); mOutput.staticMeshes.push_back(chunk.mMesh);
mOutput.staticRooms.push_back(mRoomMapping.RoomForNode(*node)); mOutput.staticRooms.push_back(mRoomMapping.RoomForNode(*node));
} }
} }

View file

@ -8,7 +8,7 @@
#define MAX_FRAME_BUFFER_MESGS 8 #define MAX_FRAME_BUFFER_MESGS 8
#define HIGH_RES 1 #define HIGH_RES 0
#define INIT_PRIORITY 10 #define INIT_PRIORITY 10
#define GAME_PRIORITY 10 #define GAME_PRIORITY 10