dungeon_crawler
annotate prototype/src/datapath.cc @ 63:7f52d6310317
fixed design issue with datafile_path
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 02 Oct 2012 04:52:59 +0300 |
parents | 91180ee7b7d9 |
children |
rev | line source |
---|---|
nuclear@5 | 1 #include <stdio.h> |
nuclear@5 | 2 #include <vector> |
nuclear@5 | 3 #include <string> |
nuclear@5 | 4 #include "datapath.h" |
nuclear@5 | 5 |
nuclear@5 | 6 static std::vector<std::string> pathlist; |
nuclear@5 | 7 |
nuclear@5 | 8 void add_data_path(const char *path) |
nuclear@5 | 9 { |
nuclear@5 | 10 pathlist.push_back(path); |
nuclear@5 | 11 } |
nuclear@5 | 12 |
nuclear@63 | 13 std::string datafile_path(const char *fname) |
nuclear@5 | 14 { |
nuclear@63 | 15 std::string res; |
nuclear@16 | 16 if(!fname) { |
nuclear@63 | 17 return res; |
nuclear@16 | 18 } |
nuclear@16 | 19 |
nuclear@5 | 20 for(auto path : pathlist) { |
nuclear@5 | 21 res = path + "/" + std::string(fname); |
nuclear@5 | 22 FILE *fp = fopen(res.c_str(), "r"); |
nuclear@5 | 23 if(fp) { |
nuclear@5 | 24 fclose(fp); |
nuclear@63 | 25 return res; |
nuclear@5 | 26 } |
nuclear@5 | 27 } |
nuclear@63 | 28 return std::string(fname); |
nuclear@5 | 29 } |