[QUOTE=horsedrowner;33903608]:dance:
Profile selection now has a "Set as default" button, which makes that the profile that the application starts with. It now works with Steam Community IDs and Steam IDs, along with custom URLs.
Profiles work with private profiles and don't show empty fields. With Steam ID conversion fully working, profiles also have a textual Steam ID and a Steam Community ID. Tapping on the community ID field opens the Steam website for that profile.
[img]http://dl.dropbox.com/u/764206/WP7/SteamCommunity/profile_7.png[/img]
Friends list is now implemented too! Tapping a friend loads his profile. Hitting the back button still brings you back to your own.
[img]http://dl.dropbox.com/u/764206/WP7/SteamCommunity/friends_1.png[/img]
Sorting is a todo, and I'll probably want to look up how to do the touch feedback effect thingy.
Not bad for a first WP7 application, if I may say so myself.[/QUOTE]
needs green instead of red :(
[QUOTE=Perl;33903851]needs green instead of red :([/QUOTE]
Maybe he doesn't like Deus Ex and APB
Seeing as I'm still using this laptop, I thought I'd pop out the old VB6 grapher again :)
Parametrics:
[img]http://i.imgur.com/MWaep.png[/img]
Differentials next, I think. Then I can add file saving/loading, settings menus etc.
I also had a bit of a fiddle with that terrain thing:
[img]http://i.imgur.com/2damg.png[/img]
Much smoother now. The green thing is a ball, you can control it with your arrow keys.
I had a neat chunk system working with it as well, meaning infinite worlds, but I get a hard (unhandled/non-Lua) crash when there are more than about 2500 shapes in use, which means it crashes when you resize the window beyond a certain point. Hmm.
Hey, sorry but i have a quick question, where do you guys get your art from? i'm just looking for some placeholder sprites ( tiles ) for a small game project.
edit:
my bad, that was a terrible page-king
Most people make their own "programmer art" till they can get some nicer stuff to replace it.
[QUOTE=Bambo.;33904451]Hey, sorry but i have a quick question, where do you guys get your art from? i'm just looking for some placeholder sprites ( tiles ) for a small game project.
edit:
my bad, that was a terrible page-king[/QUOTE]
I think a couple of FPers uses these free non commercial sprites [URL]http://www.squidi.net/pixel/char.community.php[/URL] (there is a dungeon tile set link on the left)
I got fed up with missing tools and dependencies working with MinGW, so I wrote this tiny bash script that installs ALL of them:
[php]#!/bin/sh
mingw-get update && mingw-get install msys-sed 2> /dev/null && PACKAGES=$(mingw-get list | sed -ne \
"s/\(^Package\:\)[[:blank:]]\?\([[:alnum:][:punct:]]\+\).*$/\2\\n/p")\ && echo -en\
"\nInstalling packages:\n\n$(echo $PACKAGES | tr ' ' '\n' | sort -d | pr -3 -atT)\n\n"\
&& echo -en "Package Count: $(echo $PACKAGES | tr ' ' '\n' | wc -l -- | tr -d '[:space:]' && echo)\n\n" \
&& read -p "Press return to install" -s && mingw-get --verbose=2 install $PACKAGES
[/php]
Differentiation!
[img]http://i.imgur.com/UqJrV.png[/img]
I haven't shown it here, but you can differentiate an expression with respect to any variable.
You can also chain it up as many times as you like:
[img]http://i.imgur.com/jrC2G.png[/img]
I'm not too happy with the syntax, but I can't really use "d x " or anything because that would stop people from using any variables called "d", which would be an issue :v: What do you guys think? Would you change it?
[QUOTE=r0b0tsquid;33904922]Differentiation!
I'm not too happy with the syntax, but I can't really use "d x " or anything because that would stop people from using any variables called "d", which would be an issue :v: What do you guys think? Would you change it?[/QUOTE]
cant you just change the syntax to something like:
y = f(x)
y = f'(x)
y = f''(x)
y = f''''(x)
y = f(N number of primes)(x)
[QUOTE=Bambo.;33904451]Hey, sorry but i have a quick question, where do you guys get your art from? i'm just looking for some placeholder sprites ( tiles ) for a small game project.
edit:
my bad, that was a terrible page-king[/QUOTE]
[URL="http://opengameart.org/"]opengameart.org[/URL] has some nice art.
[QUOTE=synthiac;33905316]how did you do this? i tried to do smoothing ages ago and failed horribly.[/QUOTE]
You mean the physical collision surfaces being smoothed, correct?
[QUOTE=synthiac;33905316]how did you do this? i tried to do smoothing ages ago and failed horribly.[/QUOTE]
In regular marching squares, you just assume that the lines pass halfway through each of the sides - this is why you get all of the hard angles. To "smooth out" the angles, you need to work out where along each side the edge passes through.
It's simplest to assume that values interpolate linearly between known points - so, when the line crosses the threshold, a(1 - t) + bt = threshhold, where a and b are the values at each end and t is the proportional distance between them.
Making t the subject, we get t = (threshold - a)/(b - a); this gives us how far between the two vertices the line passes through, giving us a more accurate position. Sorry if this is a bit rushed, tea now :S
[QUOTE=Perl;33903851]needs green instead of red :([/QUOTE]
[img]http://dl.dropbox.com/u/764206/WP7/SteamCommunity/friends_2.png[/img]
I'm using the accent color. It's just that it is red by default on the emulator.
[QUOTE=TheCoast47;33905213]cant you just change the syntax to something like:
y = f(x)
y = f'(x)
y = f''(x)
y = f''''(x)
y = f(N number of primes)(x)[/QUOTE]
Yeah I could do it that way as well, but at the minute differentiation works on whole expressions rather than just functions, and I'm not sure how I'd extend that syntax to expressions - the only conceivable way of doing it would be to have two different forms of syntax that do the same thing, which is probably worse than where it is now to be honest. (i.e. f'(x) but dif x x^2)
[editline]26th December 2011[/editline]
[QUOTE=synthiac;33905316]how did you do this? i tried to do smoothing ages ago and failed horribly.[/QUOTE]
A bit more free time now, have a terrible MS Paint diagram:
[img]http://i.imgur.com/hEWvn.png[/img]
t is a measure of how far you are between the two grid points: it is equal to the difference between the value at the first point and the threshold, divided by the distance between the values at the second and first points. Imagine the height of the threshold above the first value being "scaled down" by the size of the interval between the first and second values, mapping it to the interval 0<=t<=1.
[url]http://dl.dropbox.com/u/33076954/Cloth.rar[/url]
3d cloth simulator, based off that 3d, mostly software, renderer i wrote before
uhjk to apply a force to one point on the cloth, as well as g to apply a force towards the camera and f is away. wasd and the arrow keys control the camera, which is on rails rather than independent of movement
Would anyone like to know how it was done? I made up the entire process myself
Edit:
For the mildly paranoid: a pic
[IMG]http://dl.dropbox.com/u/33076954/Cloth_sim.PNG[/IMG]
Also, the cloth does no self intersection checks at the moment, so it is quite capable of going through itself
Thanks, Visual Studio, for not warning me I assigned a variable to the same variable. Does that not work for enumeration types?
Menus are more or less done:
[IMG]http://i.imgur.com/zlqXm.png[/IMG]
I added a name entry thingy for high scores. Before (in C#) it used Environment.UserName, but now it can be anything. I also decoupled the text entry stuff from the console, it's pretty simple to make text boxes now:
[img]http://i.imgur.com/83vlR.gif[/img]
(everything's kind of squished, on my netbook)
I can use local app data now instead of common app data (will make it easier to port too).
Incidentally, for anyone who remembers, [url=http://www.facepunch.com/threads/862848?p=19219272&viewfull=1#post19219272]this happened two years ago today in this very thread[/url]
Turns out that 70% of the processing time is spent actually drawing stuff, so its nice to know that the cloth simulation itself is reasonably quick
Ill go and fix all the software crap to be faster
Edit:
Now runs more than twice as fast. Or something
[QUOTE=NovembrDobby;33908260]Menus are more or less done:
[IMG]http://i.imgur.com/zlqXm.png[/IMG]
I added a name entry thingy for high scores. Before (in C#) it used Environment.UserName, but now it can be anything. I also decoupled the text entry stuff from the console, it's pretty simple to make text boxes now:
[img]http://i.imgur.com/83vlR.gif[/img]
(everything's kind of squished, on my netbook)
I can use local app data now instead of common app data (will make it easier to port too).
Incidentally, for anyone who remembers, [url=http://www.facepunch.com/threads/862848?p=19219272&viewfull=1#post19219272]this happened two years ago today in this very thread[/url][/QUOTE]
I'd love a program which can track how long you have spent on a project.
So I was working on a language transliteration of something Voidy wrote in the [url=http://www.facepunch.com/threads/824685?p=17668850&viewfull=1#post17668850]Open Steamworks thread.[/url]
Specifically this code:
[cpp]int main()
{
SetDllDirectory("C:\\Program Files\\Steam\\");
eInitError errorCode;
if (!Steamworks_Init(eInitSteamClient, errorCode))
{
std::string errMsg = "Unable to init steamworks : ";
errMsg += EnumString<eInitError>::From(errorCode);
errMsg += "\n";
Error(errMsg);
}
int error;
ISteamClient008 *steamClient = (ISteamClient008 *)CreateInterface(STEAMCLIENT_INTERFACE_VERSION_008, &error);
if (!steamClient)
Error("Unable to get steam client.", error);
HSteamPipe hSteamPipe = steamClient->CreateSteamPipe();
HSteamUser hSteamUser = steamClient->ConnectToGlobalUser(hSteamPipe);
ISteamFriends001 *steamFriends = (ISteamFriends001 *)steamClient->GetISteamFriends( hSteamUser, hSteamPipe, STEAMFRIENDS_INTERFACE_VERSION_001 );
HSteamCall hSteamCall;
CallbackMsg_t CallbackMsg;
while (true)
{
if (Steam_BGetCallback(hSteamPipe, &CallbackMsg, &hSteamCall))
{
if (CallbackMsg.m_iCallback == FriendChatMsg_t::k_iCallback)
{
FriendChatMsg_t *chatMsg = (FriendChatMsg_t *)CallbackMsg.m_pubParam;
EFriendMsgType msgType;
// allocate data for message
char *pvData = new char[256];
memset(pvData, 0, 256);
// i have no clue if steam dellocates this or if we should
const char *friendName = steamFriends->GetFriendPersonaName(chatMsg->m_ulOtherID);
steamFriends->GetChatMessage(chatMsg->m_ulSteamID, chatMsg->m_iChatID, pvData, 256, &msgType);
if (msgType & k_EFriendMsgTypeTyping)
{
//steamFriends->SendMsgToFriend(chatMsg->m_ulOtherID, k_EFriendMsgTypeChatSent, "");
std::cout << "* " << friendName << " is typing a message..." << std::endl;
}
else
std::cout << "* Message from " << friendName << ": " << pvData << std::endl;
// clean up
delete [] pvData;
}
Steam_FreeLastCallback( hSteamPipe );
}
Sleep(1);
}
// yeah we never get here, sue me
Steamworks_Shutdown();
return 0;
}
[/cpp]
Which in Lua (with my lopensteamworks module) looks like this:
[lua]require( "lopensteamworks" )
local hSteamPipe = ISteamClient012.CreateSteamPipe();
local hSteamUser = ISteamClient012.ConnectToGlobalUser(hSteamPipe);
local steamFriends = ISteamClient012.GetISteamFriends( hSteamUser, hSteamPipe );
local b;
local CallbackMsg;
while(true) do
local b, CallbackMsg = Steam_BGetCallback(hSteamPipe)
if (b) then
if (CallbackMsg.m_iCallback == 805) then
local chatMsg = CallbackMsg.m_pubParam;
local msgType;
-- i have no clue if steam dellocates this or if we should
local friendName = steamFriends:GetFriendPersonaName(chatMsg.m_ulSenderID);
local _, pvData, msgType = steamFriends:GetFriendMessage(chatMsg.m_ulSenderID, chatMsg.m_iChatID);
if (msgType == k_EFriendMsgTypeTyping) then
print( "* " .. friendName .. " is typing a message..." );
else
print( "* Message from " .. friendName .. ": " .. pvData );
end
-- clean up
pvData = nil;
end
Steam_FreeLastCallback( hSteamPipe );
end
end
[/lua]
I am fully aware of the nonsensical translations from C++ to Lua that I have included, such as an incorrect reading of flags ([i]msgType == k_EFriendMsgTypeTyping[/i] as [i]msgType & k_EFriendMsgTypeTyping[/i]) and "cleaning up" variables which do not need explicit deleting. The idea was for me to just take C++ code, translate it to pure Lua, then get the module function properly around the code.
Anyway, everything works, except for one problem with accessing steamFriends which is ISteamFriends011. When I pass a pointer to the interface, due to scope and memory issues, by the time I use any methods on the interface, the pointer is somehow invalid or something.
I figure I might be able to fix it if I add the pointer to a static map, and access the map instead of directly passing the pointer - a dynamic/auto pointer of sorts (if I were to also remove the pointer from the map in the __gc method for this object), but I haven't tried that yet.
The binding in question where my issues start:
[cpp]static int ISteamClient012_GetISteamFriends(lua_State *L)
{
lua_pushsteamfriends011(L, (ISteamFriends011 *)pSteamClient->GetISteamFriends(*luaL_checksteamuser(L, 1), *luaL_checksteampipe(L, 2), STEAMFRIENDS_INTERFACE_VERSION_011 ));
return 1;
}
[/cpp]
Other than this issue, it does read callbacks properly from Steam and all that neat stuff!
[QUOTE=Loli;33908556]I'd love a program which can track how long you have spent on a project.[/QUOTE]
Meh. I've always coded it on and off, sometimes there were months where I didn't touch it. I've been on a full-time uni course since before I started too :v:
Ever programmed until you hit some bugs that would take significant code restructuring and just was like "Okay, that's enough programming for today, I'll get back to this later."?
I'm having one of those moments. :(
I think I don't have any other choice but to redo lopensteamworks to only use VERSION_SAFE_STEAM_API_INTERFACES strictly, and not give you the choice to use anything else.
[QUOTE=amcfaggot;33908924]Ever programmed until you hit some bugs that would take significant code restructuring and just was like "Okay, that's enough programming for today, I'll get back to this later."?
[/QUOTE]
All the goddamn time :v:
I am forced to work in A8 Gamestudio and I have some odd bugs which frustrate me. So I gave up for today.
[QUOTE=amcfaggot;33908924]Ever programmed until you hit some bugs that would take significant code restructuring and just was like "Okay, that's enough programming for today, I'll get back to this later."?[/QUOTE]
Don't think I've ever had a project where I didn't.
Made some highlight system to make it easier to see what move will be removed:
[img]http://dl.dropbox.com/u/99717/Highlight.png[/img]
[QUOTE=Loli;33908556]I'd love a program which can track how long you have spent on a project.[/QUOTE]
Didn't nullsquared make one?
[QUOTE=Simspelaaja;33909219]Didn't nullsquared make one?[/QUOTE]
I think it just used the oldest "Date Created" and latest "Date Modified" to guess.
[QUOTE=amcfaggot;33908924]Ever programmed until you hit some bugs that would take significant code restructuring and just was like "Okay, that's enough programming for today, I'll get back to this later."?
[/QUOTE]
I run into the problem of: "Okay, this works." and then I leave it.
Then I come back to actually use it later "Oh fuck, this isn't fully fleshed out and isn't what i need it to be" which sets back whatever I was going to do a lot by having to finish that feature.
I think they're similar problems. v:
Made a console program that looks at what you're listening to ( only Winamp for now ), finds the lyrics on lyrics.com and displays them.
Perfect for all the amateur singers out there :v:
[quote]
[img]http://i.imgur.com/HLap4.png[/img][img]http://i.imgur.com/3lbfZ.png[/img]
[/quote]
Only problem is this:
[img]http://i.imgur.com/lq1yu.png[/img]
:/
Sorry, you need to Log In to post a reply to this thread.