OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
parser.cpp
Go to the documentation of this file.
1#include "parser.h"
2#include "utils/string_frm.h"
3
4using namespace Tempest;
5
6Vec2 Parser::loadVec2(std::string_view src) {
7 if(src=="=")
8 return Vec2();
9
10 float v[2] = {};
11 string_frm str(src);
12 for(int i=0; i<2; ++i) {
13 char* next = nullptr;
14 v[i] = std::strtof(str.c_str(),&next);
15 if(str==next) {
16 if(i==1)
17 return Vec2(v[0],v[0]);
18 }
19 str = next;
20 }
21 return Vec2(v[0],v[1]);
22 }
23
24Vec3 Parser::loadVec3(std::string_view src) {
25 if(src=="=")
26 return Vec3();
27
28 float v[3] = {};
29 string_frm str(src);
30 for(int i=0; i<3; ++i) {
31 char* next=nullptr;
32 v[i] = std::strtof(str.c_str(),&next);
33 if(str==next) {
34 if(i==1)
35 return Vec3(v[0],v[0],v[0]);
36 if(i==2)
37 return Vec3(v[0],v[1],0.f);
38 }
39 str = next;
40 }
41 return Vec3(v[0],v[1],v[2]);
42 }
43
45 if(src=="NONE")
47 if(src=="BLEND")
49 if(src=="ADD")
51 if(src=="MUL")
52 return Material::Multiply;
53 return Material::Solid;
54 }
@ AdditiveLight
Definition material.h:25
@ Multiply
Definition material.h:22
@ Transparent
Definition material.h:24
@ AlphaTest
Definition material.h:19
char * c_str()
Definition string_frm.h:51
Tempest::Vec3 loadVec3(std::string_view src)
Definition parser.cpp:24
Tempest::Vec2 loadVec2(std::string_view src)
Definition parser.cpp:6
Material::AlphaFunc loadAlpha(std::string_view src)
Definition parser.cpp:44