MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / load_model_args

Function load_model_args

src/SB/Core/x/xFont.cpp:1102–1158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1100 }
1101
1102 void load_model_args(model_args& ma, const substr& s)
1103 {
1104 xtextbox::tag_entry_list el = xtextbox::read_tag(s);
1105 xtextbox::tag_entry* e;
1106
1107 if (!el.size)
1108 {
1109 return;
1110 }
1111
1112 e = &el.entries[0];
1113
1114 if (e->op == ':' || (e->args_size == 1 && e->args[0].size))
1115 {
1116 substr& name = e->args[0];
1117
1118 ma.model = load_model(xStrHash(name.text, name.size));
1119 }
1120
1121 el.entries++;
1122 el.size--;
1123
1124 e = xtextbox::find_entry(el, substr::create("rot", 3));
1125
1126 if (e && e->op == '=' && e->args_size == 3)
1127 {
1128 xtextbox::read_list(*e, (F32*)&ma.rot, 3);
1129 }
1130
1131 e = xtextbox::find_entry(el, substr::create("dst", 3));
1132
1133 if (e && e->op == '=' && e->args_size == 4)
1134 {
1135 xtextbox::read_list(*e, (F32*)&ma.dst, 4);
1136 }
1137
1138 e = xtextbox::find_entry(el, substr::create("off", 3));
1139
1140 if (e && e->op == '=' && e->args_size == 2)
1141 {
1142 xtextbox::read_list(*e, (F32*)&ma.off, 2);
1143 }
1144
1145 e = xtextbox::find_entry(el, substr::create("scale", 5));
1146
1147 if (e && e->op == '=' && e->args_size == 1)
1148 {
1149 if (icompare(e->args[0], substr::create("screen", 6)) == 0)
1150 {
1151 ma.scale = model_args::SCALE_SCREEN;
1152 }
1153 else
1154 {
1155 ma.scale = model_args::SCALE_FONT;
1156 }
1157 }
1158 }
1159

Callers 1

parse_tag_modelFunction · 0.70

Calls 7

read_tagFunction · 0.85
find_entryFunction · 0.85
read_listFunction · 0.85
load_modelFunction · 0.70
xStrHashFunction · 0.70
icompareFunction · 0.70
createFunction · 0.50

Tested by

no test coverage detected